转:判断指针是否为空为何要写成 if ( NULL == p ) ?

来自:http://www.jubao163.com/it/bianchengwendang/2007-06-17/14890.shtml

而非 if ( p == NULL ) 呢? 

--------------------------------------------------------------- 

本质上没有不同,不过这是好的编程习惯 
如果你不小心写成:if ( p = NULL ) 呢?注意少了个等号 
那你的程序每次运行到这里if都为真 
很难查错~~ 
--------------------------------------------------------------- 

他们一样但是与 
if(!p) ? 不一样,提倡的为if(p == NULL) 
--------------------------------------------------------------- 

写成if ( p == NULL )也没有错,不过为了防止程序员在写程序的时候将“==”误写成“=”造成不易察觉的错误,写成if ( NULL == p ) 更安全。 
注:写成p = NULL,编译不会出错,但运行后效果可想而知,而且这种错误通常比较难查 
    写成NULL = p,编译就不会通过,可以避免不必要的麻烦 

一点拙见!!! 
--------------------------------------------------------------- 

这是一个编程好习惯 

有三种写法,你看if (!p); if (p == NULL); if (NULL == p)哪一种更具有直观和健壮性呢? 
NULL == p还可以避免出现 == 写成 = 的情况。 
--------------------------------------------------------------- 

效果一样的,但NULL==p更安全,想想看,当p==NULL因笔误写成p=NULL时,会发生什么?这时,if( p=NULL )在语法上完全正确,可条件表达式结果永远为FALSE,更致命的是,p的值将发生改动-高度危险又不易察觉的BUG!反之,if( NULL = p )是将产生一个编译错误 
至于习惯,前后一致,所有if语句的风格一致,就是好习惯! 
--------------------------------------------------------------- 

NULL是空指针,不能给空指针赋值,如果不小心写成NULL = p,那么程序就会报错。但反过来写成p = NULL,就不会报错。 
--------------------------------------------------------------- 

同理,有时候要拿一个常量跟一个变量进行比较也是建议把常量写在左边

posted @ 2013-09-27 20:27  Jimmy_5  阅读(772)  评论(0编辑  收藏  举报