空指针指向的内存哪个地方?
int *p;p = NULL;
指向0
空指针指向的地址是0x00000000,一般的PE文件,开始的内存基址就是0x00400000,代码段的开头是0x00401000,所以空指针指向的地址在该文件中是不存在的,由于这种内存地址默认指向本PE文件中的地址,所以也不会指到别的运行中的程序中去。[ 本帖最后由 VisualUnit 于 2007-1-24 14:28 编辑 ] p 是一个指针变量,如果p = 0;、p = 0L;、p = '\0';、p = 3 - 3;、p = 0 * 17; 中的任何一种赋值操作之后, p 都成为一个空指针,由系统保证空指针不指向任何实际的对象或者函数。反过来说,任何对象或者函数的地址都不可能是空指针。C标准中没有对空指针指向内存中的什么地方这一个问题作出规定,也就是说用哪个具体的地址值(0x0000 地址还是某一特定地址)表示空指针取决于系统的实现,常见的空指针一般指向 0 地址,即空指针的内部用全 0 来表示 空指针不指向任何地方,NULL就是一个空指针值,它是不指向任何一个地方的
严格的来说指针并不是为0的 如果我让p=0,它想不为0都不行。 如果我让p=0,它想不为0都不行。 空指针,是分配地址的,但是没有任何值 只是初始化指针用到,0或NULL.
没有指向那里.防止野指针!
页:
[1]