C 语言 不同类型变量与“零值”比较的 if 语句的规范写法
注意:这里的 “零值” 可以是 0、0.0、NULL(空指针)、空白符、空字符串等
不同的数据类型对应不同的 “零值”,切勿比较错误
1 int i 与 “零值” 比较的 if 语句
int 类型对应的 “零值” 为整数 0
1.1 代码
if(i == 0)
或
if(i != 0)
2 float f 与 “零值” 比较的 if 语句
float 类型对应的 “零值” 一般为 1e-6
2.1 代码
const float EPSINON = 1e-6;
if( (f >= -EPSINON) && (f <= EPSINON) )
3 double d 与 “零值” 比较的 if 语句
同 2 float f 与 “零值” 比较的 if 语句
4 指针与 “零值” 比较的 if 语句
指针类型对应的 “零值” 为 NULL(空指针)
4.1 代码
以 int 型指针为例
int *p_i = NULL;
if(p_i == NULL)
或
if(p_i != NULL)
5 char c 与 “零值” 比较的 if 语句
char 类型对应的 “零值” 为空白符。
空白符分为以下几类:
C语言 提供 isspace()
函数用来检测一个字符是否是空白符。
头文件:
ctype.h
函数原型:
int isspace(int c);
参数:
c 表示要检测的字符。
返回值:
返回值为非 0(真)表示 c 是空白符,返回值为 0(假)表示 c 不是空白符。
5.1 代码
#include <ctype.h>
if(isspace(c) == 0)
或
if(isspace(c) != 0)
6 字符串与 “零值” 比较的 if 语句
6.1 代码
char str[9] = {0};
char p_str = str;
if(strlen(str) == 0)
或
if(strlen(p_str) == 0)
7 参考资料
1、C语言isspace()函数:判断一个字符是否是空白符 - C 语言中文网 - http://c.biancheng.net/c/isspace.html
2、林锐博士的《高质量 C/C++ 编程指南》
3、C语言中的NULL和空字符串 - 农民达人 - http://blog.sina.com.cn/s/blog_596f35310100a84v.html