场景
- 在使用三元运算法
?:
时, 发现计算的结果不是自己想要的150
?
auto tSize =100;auto check =1;
tSize = tSize +(check)?50:0;
cout <<"tSize second: "<< tSize << endl;
说明
- 三目运算符的优先级级别很低[1],在所有运算法里在第
13
级,也就比赋值运算符和逗号运算符高。所以以上的代码要把三元运算符的结果加上tSize
,那么就需要加圆括号((check) ? 50 : 0)
.
例子
test.cpp
voidTestTernaryOperator(){{auto tSize =100;auto check =1;
tSize = tSize +((check)?50:0);
cout <<"tSize first: "<< tSize << endl;}{auto tSize =100;auto check =1;
tSize = tSize +(check)?50:0;
cout <<"tSize second: "<< tSize << endl;}}
输出
tSize first: 150
tSize second: 50
参考
- C语言中运算符与其优先级
本文转载自: https://blog.csdn.net/infoworld/article/details/144150908
版权归原作者 Peter(阿斯拉达) 所有, 如有侵权,请联系我们删除。
版权归原作者 Peter(阿斯拉达) 所有, 如有侵权,请联系我们删除。