char *p;那么if(p==NULL)和if(!*p)作用相同还是相反?我觉得是相反的,但好像是相同的,求解释? |
|
4分 |
不同的东西
p==NULL 判断指针是不是空指针 !*p 是对p指针指向的char 进行取反操作 if(p==NULL) 和 if(!p) 效果相同,但与指针判空 建议使用前者 |
1分 |
前面写错了 if(p==NULL) 和 if(!p) 效果相反
早期的指针 空指针NULL的值是0 |
8分 |
根本就没有可比性:
char * p = NULL; char a = “”\0″”; char a = “”A””; 当然,如果LZ问的是 |
5分 |
if(p==NULL) ==> if(p==0)
if(!*p) ==> if(*p==0) |
2分 |
就一个意思,通常我爱写成if(!p) |