《C和C++程序员面试秘笈》——1.5 选择编程风格良好的条件比较语句

本节书摘来自异步社区出版社《C和C++程序员面试秘笈》一书中的第1章,第1.1节,作者: 董山海,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.5 选择编程风格良好的条件比较语句

C和C++程序员面试秘笈
考点: 良好的编程风格

出现频率:

A.假设布尔变量名字为flag,它与零值比较的标准if语句如下。

第一种:

  if (flag == TRUE)
  if (flag == FALSE)```
第二种:

  if (flag)
  if (!flag)`
B.假设整型变量的名字为value,它与零值比较的标准if语句如下。

第一种:

  if (value == 0)
  if (value != 0)```
第二种:

  if (value)
  if (!value)`
C.假设浮点变量的名字为x,它与0.0的比较如下。

第一种:

  if (x == 0.0)
  if (x != 0.0)
第二种:

  if ((x >= -EPSINON) && (X <= EPSINON))
  if ((x < -EPSINON) || (X > EPSINON))```
其中,EPSINON是允许的误差(精度)。

D.指针变量p与0的比较如下。

第一种:

  if (p == NULL)
  if (p != NULL)`
第二种:

  if (p == 0)
  if (p != 0)```
【解析】

A的第二种风格较良好。根据布尔类型的语义,零值为“假”(记为FALSE),任何非零值都是“真”(记为TRUE)。TRUE的值究竟是什么并没有统一的标准。例如Visual C++将TRUE定义为1,而Visual Basic则将TRUE定义为-1。因此不可将布尔变量直接与TRUE、FALSE进行比较。
B的第一种风格较良好,第二种风格会让人误解value是布尔变量,应该将整型变量用“==”或“!=”直接与0比较。
C的第二种风格较良好。注意:无论是float还是double类型的变量,都有精度限制。所以一定要避免将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”形式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值