您的位置:首页 > 编程语言 > C语言/C++

C语言if语句中的零值比较

2017-05-03 13:50 127 查看
目录:

布尔变量与零值比较

整型变量与零值比较

浮点变量与零值比较

指针变量与零值比较

布尔变量与零值比较

规则:不可将布尔值直接与0,1或者true,false比较

代码示例:

bool flag;
if (flag) //表示flag为真
if (!flag) //表示flag为假
//不良风格,编程时不要使用
if (flag == 0)
if (flag == 1)
if (flag == false)
if (flag == true)
整型变量与零值比较

规则:应当将整形变量用“==”或“!=”直接与0比较

代码示例:

int num;
if (num == 0)
if (num != 0)
//不可模仿bool值的比较方式以免被当成是bool变量
if (num)
if (!num)
浮点变量与零值比较

规则:不可将浮点型变量用“==”或者“!=”与任何数字比较

不论是float变量还是double变量,都有精度限制。所以一定要避免将浮点型变量用“==”或“!=”与数字比较,应该设法换成“>=”或者“<=”形式。

代码示例:

float epsinon = 0.000001; //设定允许的误差
float x;
if (x == 0.0) //隐含错误的比较方法
if ((x >= -epsinon) && (x <= epsinon)) //正确的比较方法

指针变量与零值比较

规则:应当将指针变量用“==”或者“!=”与NULL比较

指针变量的零值是“空”(记为NULL),尽管NULL与0值相同,但是两者意义不同。

代码示例:

char ptr;
//显示比较,强调ptr是指针变量
if (ptr == NULL)
if (ptr != NULL)
//不要写成
if (ptr == 0)
if (ptr != 0)
if (ptr)
if (!ptr)
各种零值比较:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: