内存位置0
null指针并不指向任何对象。因此,除非是用于赋值或比较运算,处于其他任何目的使用null指针都是非法的。
严格来说,这并非一个可移植性问题:在所有的C程序中,误用null指针的效果都是未定义的。 检查出这类问题的最简单办法就是,把程序移到不允许访问内存位置0的机器上运行。
揭示C语言是如何处理内存地址0的:
#include <stdio.h>
int main() {
char *p;
p = NULL;
printf("Location 0 contains %d\n", *p);
return 0;
}
输出: