且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《编写高质量代码:改善c程序代码的125个建议》——建议18-4:指针变量应该用“==”或“!=”与NULL进行比较

更新时间:2022-09-11 13:03:46

本节书摘来自华章计算机《编写高质量代码:改善c程序代码的125个建议》一书中的第3章,建议18-4,作者:马 伟 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

建议18-4:指针变量应该用“==”或“!=”与NULL进行比较

在C语言中,定义指针变量时一定要同时初始化该指针变量,如下面的示例代码所示:

int* p = NULL;

这里需要特别注意的是,尽管NULL 的值与0 相同,但是两者意义却不相同。因此,在我们将指针变量与0值做比较的时候,也应该直接用“==”或“!=”与NULL进行比较。例如,指针变量p与0值比较的标准if 语句如下面的示例代码所示:

if( p== NULL ) 
if( p!= NULL )

这样通过将 p 与NULL 显式进行比较,从而强调p 是指针变量。如果我们直接将指针变量p与0值进行比较,就很容易让人误解p 是整型变量,如下面的示例代码所示:

if( p==0 ) 
if( p!=0 )

同理,如果写成下面这种形式,就很容易让人误解p 是布尔变量:

if( p ) 
if( !p )