void指针:void *
可以用其指代任何类型的指针。
但不能用void指针直接进行操作;只能转换成对应类型指针后,才能操作。
void test(void* a) {
printf("void* --> %d\n", * (int*)a);#转换void指针类型
}
null指针;int *p=null
在C语言中,如果一个指针不指向任何数据,我们就称之为 空指针 ,用 NULL
表示。例如:
int *p = NULL;
而 int *p; //它不是空指针
它的值是随机的,是垃圾值,如果不小心使用了它,运行时一般会引起段错误,导致程序退出,甚至会不知不觉地修改数据。
因此null指针就是为了避免这种错误,一旦出现 int *p 这种未指明方向的指针就会报错。