C语言中if(NULL == p)和if( p==NULL )区别


首先声明的一点就是p是一个指针,初次遇到 if(NULL==p)的时候可能都会有点疑问吧,多见就不怪喽。。。


首先在我们判断一个指针的是否为空的时候,我们都会写 if(p==NULL),但是万一我们由于粗心写成了 if(p=NULL),一个是判断语句,一个是赋值语句,这就跟你想要实现的功能脱离轨道了,而且这不是语法错误,而是逻辑上的错误,我们应该都知道逻辑上的错误是最难找的,于是为了防止这种情况发生,有了 if(NULL==p)这种情况。再假如你又粗心了,你写这个的时候写成了if(NULL=p),这个可是语法错误了,因为NULL不能被当做“左值”用。也就是说在你粗心的时候少写了一个“=”的时候能将一个逻辑的的错误转化成语法上错误。


简单的的说:

if(NULL==p)   正确

if(p==NULL)   正确


当我们粗心写成下面形式:

if(NULL=p)     语法错误

if(p=NULL)     逻辑错误


当然if(NULL==p)这种写法是最完美的了。。。。。


Tags:
196 Comments

Add a Comment

电子邮件地址不会被公开。