NULL被顷悔定义为0,在C中约定,氏饥一旦指针为NULL,即为该指针指向的内容不可用。
在DOS(WINDOWS的基础)中,物理地址0开始的部分单元被操作系统占用,如果试图雀核正读写0地址的内容将被视为非法的,会立刻结束用户程序而退出。
NULL指针指向的地址为0x00000000,其实内在中地址的范围是0x00000000~0xffffffff,地址中的每一个字节都可以存储东西。但是系统配坦差出于某些原因考虑,0x00000000这个地址不用。所以返回指针为NULL一般代表错误,很多函数返回其它值是正确信铅的地址。你想想,如果这个地址也利用,那么如果函数执行错误,如strstr,在字符串中没有找到子字符串,返回NULL代表没有找到子字符串,如果NULL也可以存东西培皮,那么没有找到子字符串是没有办法表达的。
NULL的地址是0,源码中肯定会有这么一句 #define NULL (0)宴散.一般不让读写。
欢迎段知追问。晌燃氏