第1个回答 2010-07-03
p=NULL;是空指针 这个指针没有任何用 但是是最安全的
因为当一个指针不用以后 如果不把他指向0 他很可能与别的地址相同
那样就遭了 而指向0却不会出现这种问题
int * p;
p=2000;这种有可能通过编译 但是这是极其危险的做法 绝对不能这样做
指针只能赋予相应的指针值 或者是0空指针
因此只能表示为
int * p;int a;
p=&a;
或者
p=0;
第2个回答 2012-12-27
0地址特殊?否!这只是个习惯用法。
0 作为空值是有意义的,
因为通常变量的地址不会为0;
对intel86系列CPU来说这里是中断向量表,用户代码是不会改动它的。
其他系统只怕也会一样的,因为C最早并不是用于DOS,WIndows。
而是用来编写UNIX操作系统的;并随操作系统一起发布的。
早期的UNIX并不是在IntelCPU上实现的。
事实上0地址,是可以读取的。当然如今操作系统可能会保护这段内存。
用户态代码只怕不能读取了。
第3个回答 2010-07-03
不能 , NULL代表空地址,是指没有 不是0的意思;
第4个回答 2010-07-03
可以的。 在pc上你设置一个指针等于2000跟设置它等于0实际上是一样的