第1个回答 2013-04-26
1:0和NULL不一样,0可以只数字0,也可以指字符0,NULL指的是空。
2:p=NULL;这一句的意思就是令P指向空地址
3:如果最后不写p=NULL;的话就要释放p.像这样free(p);,不这么做的话就有可能出现指针乱跳转的危险
第2个回答 2013-04-26
关于无效值在不同的环境有不同的定义,大多是0,而有的是0xFFFFFFFF,
编译代码换了环境后而通过宏定义NULL,在利用NULL的代码中就不用再修改,而是直接修改宏定义
第3个回答 2013-04-26
这是指针啊,如果是直接将0赋值给p也可以直接写int p;p=0;
第4个回答 2013-04-26
1. 这是习惯写法。一般都把NULL定义成(void *)0,如果直接p=0;编译器会告警,说把一个整型赋给一个指针型。
2. NULL一般都用于表示空指针,p=NULL就表示把p指向一个无效空间地址
3. p指向NULL的无效空间地址后,对这个地址赋值就是非法的。只有把p指向一个有效地址空间才可以对它指向的内存写入内容,即可执行*p=XX操作。