一个指针不指向任何地址 和 一个指针指向NULL有什么不同?从内存的角度来看 直观点说说

来源:百度知道 编辑:UC知道 时间:2024/06/20 18:50:31

一个里面是乱七八糟的数据,一个里面是0
差别在于程序里你可以根据里面的值是0判断一个指针是空指针, 而你无法判断一个内容不是0指针是不是有效。 所以如果需要做这种判断(确实有些情况程序里你跟本不需要判断它是不是有效), 哪么一般的选择就是: 确保不是0的都是有效的, 无效的立刻赋值0

从内存的角度来看,没什么不同。你看看那个指针变量的内容就知道了。

char *p;

/* 看看指针里有啥 */
printf("%0x\n",p);

指针变量p也是有其所在的内存地址的,即&p,你可以直接看看那块内存中的内容是啥就知道了。

刚刚说错了 再回去看看 呵呵