转:判断指针是否为空为何要写成 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,就不会报错。
---------------------------------------------------------------
同理,有时候要拿一个常量跟一个变量进行比较也是建议把常量写在左边