C++中if(x==8)和if(8==x)有什么区别?
2个回答
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、与其依赖这种把代码搞得不通顺的奇怪写法,不如通过设置合理的编译器警告等级来避免手贱。
1、只所以出现这种写法是历史造就的,当年是为了「防止手贱把 == 写成 =」而被人发明出来的。
2、这两种写法本意是没有区别的,但如果你不小心把 == 写成 =:
if (x == 8) 括号里就会从判断变成赋值 if (x = 8),不幸表达式「x = 8」的值为 8,也就是 true
if (8 == x) 括号里就会从判断变成赋值 if (8 = x),你没法给 8 赋值,所以编译器会报错
3、不过现在都 2017 年了,很久以前,市面上主流编译器就都支持对直接在 if 括号里写赋值的情况报警告了。
4、与其依赖这种把代码搞得不通顺的奇怪写法,不如通过设置合理的编译器警告等级来避免手贱。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询