《编写高质量代码:改善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 )
相关文章
|
11天前
|
C语言
【C语言】:详解函数指针变量,函数指针数组及转移表
【C语言】:详解函数指针变量,函数指针数组及转移表
14 2
|
24天前
|
JavaScript 前端开发
null、未定义或未声明的变量之间有什么区别
null、未定义或未声明的变量之间有什么区别
定义好变量,${age}模版字符串,对象可以放null,检验数据类型console.log(typeof str)
定义好变量,${age}模版字符串,对象可以放null,检验数据类型console.log(typeof str)
null、undefined和未声明变量的具体应用场景
null、undefined和未声明变量的具体应用场景
|
7天前
|
Java 程序员 Linux
探索C语言宝库:从基础到进阶的干货知识(类型变量+条件循环+函数模块+指针+内存+文件)
探索C语言宝库:从基础到进阶的干货知识(类型变量+条件循环+函数模块+指针+内存+文件)
13 0
|
29天前
|
存储 C语言
C语言学习记录——7000+字长文-复习&学习指针(指针、地址、指针变量、指针与数组、指针与函数、指针数组、多级指针)二
C语言学习记录——7000+字长文-复习&学习指针(指针、地址、指针变量、指针与数组、指针与函数、指针数组、多级指针)二
17 1
|
29天前
|
存储 C语言
C语言学习记录——7000+字长文-复习&学习指针(指针、地址、指针变量、指针与数组、指针与函数、指针数组、多级指针)一
C语言学习记录——7000+字长文-复习&学习指针(指针、地址、指针变量、指针与数组、指针与函数、指针数组、多级指针)一
16 1
|
11天前
|
C语言
【C语言】:深入理解指针变量
【C语言】:深入理解指针变量
7 0
|
2月前
|
存储 C语言
字符指针变量与字符数组的比较
字符指针变量与字符数组的比较
26 3
|
2月前
|
存储 C语言
指针变量作为函数参数
指针变量作为函数参数
13 0