C++中if(x==8)和if(8==x)有什么区别?

 我来答
匿名用户
2017-01-15
展开全部
c++中if(x==8)或者if(8==x)这都没有什么区别的。

1、只所以出现这种写法是历史造就的,当年是为了「防止手贱把 == 写成 =」而被人发明出来的。
2、这两种写法本意是没有区别的,但如果你不小心把 == 写成 =:
if (x == 8) 括号里就会从判断变成赋值 if (x = 8),不幸表达式「x = 8」的值为 8,也就是 true
if (8 == x) 括号里就会从判断变成赋值 if (8 = x),你没法给 8 赋值,所以编译器会报错
3、不过现在都 2017 年了,很久以前,市面上主流编译器就都支持对直接在 if 括号里写赋值的情况报警告了。
4、与其依赖这种把代码搞得不通顺的奇怪写法,不如通过设置合理的编译器警告等级来避免手贱。
chiconysun
2017-01-15 · TA获得超过2.2万个赞
知道大有可为答主
回答量:5410
采纳率:92%
帮助的人:2597万
展开全部
如果x是普通变量,没有什么区别
如果x是自定义类型的对象,涉及到该类型重载运算符==的类型,前者可以用成员重载,后者只能用友元或者全局函数重载
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式