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

简介:

本节书摘来自华章计算机《编写高质量代码:改善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 )
相关文章
|
2月前
|
存储 C语言 C++
动态内存分配与指向它的指针变量
动态内存分配与指向它的指针变量
20 1
|
2月前
|
存储 C语言 C++
指针变量
指针变量
11 0
|
2月前
|
C语言
指向指针数据的指针变量
指向指针数据的指针变量
10 0
|
2月前
|
存储 C语言 C++
怎样定义指针变量
怎样定义指针变量
11 2
|
2月前
|
存储 C++
使用字符指针变量和字符数组的比较
使用字符指针变量和字符数组的比较
13 0
|
2月前
|
存储 编译器
指针变量
指针变量
14 0
|
2月前
|
编译器 C语言
嵌入式C语言变量、数组、指针初始化的多种操作
嵌入式C语言变量、数组、指针初始化的多种操作
32 0
|
2月前
|
存储 算法
LeetCode刷题---75. 颜色分类(双指针,循环不变量)
LeetCode刷题---75. 颜色分类(双指针,循环不变量)
|
3月前
C中的NULL指针
C中的NULL指针。
19 2
|
1月前
C中的NULL指针
C中的NULL指针。
5 1