你要想给p的地址赋值0可以,但是不能,在它指的空间赋值
你要想给p指向的空间赋值可以,但是,它的地址不能是0

两个例子:

file1.c
#include<stdio.h>
void main(){    
int *p = &i;
p = NULL;    
p = 0;    
p = '\0'}

file2.c
#include<stdio.h>
void main(){    
int i = 23;    
int *p = &i;    
*p = NULL;    
*p = 0;    
*p = '\0';}

 

因为大多数编译器规定,内存为0的地方不能写操作。很多时候把定义一个指针的p赋值为NULL是为了,防止它乱指向。

所以:int *p=NULL;

            *p=2;

    就会出错的。

 

int *p=0    定义指针p指向的内容为整型并 初始化为空
void *p     定义指针p指向的内容为空类型 没有初始化

posted on 2013-01-07 22:57  Yogurshine  阅读(771)  评论(0编辑  收藏  举报