这里讨论下C语言的空指针操作


null point指空指针,即无指向的指针。
例如 ·char * p = NULL;
这里定义p指向NULL,也就是空的意思,一般将NULL定义为0。

空指针到底指向哪里?
这个问题由编译器的具体实现决定,C语言的使用者无须关心。
例如 32位Windows系统中的空指针被初始化为指向·0x00000000
8位IAR 8051中被初始化为??

空指针可以被赋值,一旦赋值就不再是空指针。
例如 p = ”this was a null pointer“;

注意 void* 不属于空指针, 可以叫做任意类型指针。
例如 void * memset (void * buffer, int c, size_t num);
这里 void * buffer,指作为操作目标的一段内存, 内存可以存储任意类型数据,所以定义为void *