这里我也理解的不咋的,大致意思应该就是根据运算符号 的优先级不同来解决的
条件运算符是其中一部分,而条件运算符具有右结合性,当一个表达式中出现多个条件运算符时,应该将位于最右边的问号与理他最近的冒号配对,并按照这一原则区分个条件运算符的运算对象
注:条件运算符的优先级高于赋值,逗号运算符,低于其他运算符。
表达式:
表达式1?表达式2:表达式3
流程是先运算表达式1的值,如果表达式1的值为真值,这返回表达式2的值,否则返回表达式3的值。
例如 a>b?a:b;取ab最大值,
编写环境vs2015
int main() { int a = 10, b = 20; std::cout << (a > b ? a : b); std::getchar(); return 0; }
这样会使程序简单一点
可以和下面的代码比对一下
int main() { int a = 10, b = 20; std::cout << (a > b ? a : b); //等价于 if (a > b) { std::cout << a; } else { std::cout << b; } std::getchar(); return 0; }