char *
作为原始通用指针,可以很好地完成工作。据我所知,void *
只能char *
。void *
。更重要的是,使用void *
进行算术运算的标准是not,这有点容易出错。
那么为什么我们在C中需要char *
类型?我们什么时候应该使用它,而不是tableView:heightForRowAtIndexPath:
?
答案 0 :(得分:3)
void *
只能char *
我不确定哪个可以做更多的事情而不是另一个但我确信void*
可以做自己的工作char *
(或任何其他类型的指针)不能。
void*
被称为通用指针。通用指针:
如果你努力让char*
做void*
可以做的事情,那么它可能会导致假设。
如果即使编译器没有通知错误或至少有关于不兼容类型的警告,我们仍然不想看到这种代码:
//hi guys, the argument is char* type
//but you still can pass any other pointer types
//don't worry!
void func(char * p) {
...
}
我们只需要这个:
//this comment is not need, right?
//you know that you can pass any pointer types
void func(void* p) {
...
}