本帖最后由 ahgao 于 2011-9-30 12:20 编辑
NULL指针是一个逻辑概念,它不一定非得是0。
C不禁止使用值为0的指针,你大可按自己喜欢得方式去做。可是为什么会有NULL指针呢,因为我们需要一个不指向任何有效内容的指针以表明某种用途,比如,分配内存失败。但是NULL指针既然是一个变量,它也是必须要有一个值的,用0来表示NULL是最合适的。当然-1似乎也是一个选择,但是当需要进行逻辑判断是-1显然不如0好。因为CPU只有测试为0的指令没有测试为-1的指令。
这个x86结构没有任何关系。
|