为什么说if(flag)或if(!flag)要比if(flag==1)或if(flag==0)好?

浮生若梦 2002-10-26 10:43:13
falg是bool型。
...全文
1511 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
pi1ot 2002-10-27
  • 打赏
  • 举报
回复
在C++中语义是一样的,不过毕竟用==1,==0要做一次类型转换。
程序的色彩 2002-10-27
  • 打赏
  • 举报
回复
前面的是单目运算符,后面的是2目运算符
sylmoon 2002-10-27
  • 打赏
  • 举报
回复
waiting
ghdut 2002-10-27
  • 打赏
  • 举报
回复
慢慢体会吧!!!
ukyoking 2002-10-27
  • 打赏
  • 举报
回复
==1,==0会引发构造临时对象,增加了系统开销。
GZCompiler 2002-10-26
  • 打赏
  • 举报
回复
这可不一定谁好谁坏,看你的flag怎么定义了。
如果flag是boolean型,if(flag)好,因为if语句中就是要求是布尔表达式,
这样符合逻辑,如果写成if(flag==0)等,会造成歧义,况且false也不能说等价于0。
如果flag是int或enum型,自然要用类似flag==0这样的的布尔表达式放在if语句中作为判断条件了。
paulxj 2002-10-26
  • 打赏
  • 举报
回复
if (flag) 和if(flag == 1) 一定等价!
woxihuanbohe 2002-10-26
  • 打赏
  • 举报
回复
如果 if (flag == 1)
则有可能flag被误认为是int类型!
Alkaid 2002-10-26
  • 打赏
  • 举报
回复
if (flag) 和if(flag == 1) 不一定等价阿!
GOTO_2002 2002-10-26
  • 打赏
  • 举报
回复
前面的是单目运算符,后面的是2目运算符~~~
hehe214 2002-10-26
  • 打赏
  • 举报
回复
能少输入几个字符啊,呵呵
梦断酒醒 2002-10-26
  • 打赏
  • 举报
回复
1.减少运算
2.防止写成flag=1或flag=0,此时程序编译不会有错。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧