?:这个运算符我们平时可能有这样使用
int temp = 0 ;
bool a = false;
temp = (a) ? 30 : 40; //通常来说a是一个表达式,这里为了简单
最后的运算的结果是,temp = 40;当然如果 a = true 的话,temp = 30
那么下面这种又是什么意思呢?
bool a = false;
bool b = false;
int temp = -1 ;
a ? b ? temp = 0 :temp = 1 : temp = 2;
cout << temp << endl;
其实这个与前面的是一个意思,只是说多了一个判断条件
有下面三种情况
- a b 都等于true时,输出结果是 temp = 0
- a = true b = false 时,输出结果是 temp = 1
- a = false b = true 时,输出结果是 temp = 2
- a = false b = false 时,输出结果时 temp = 2
为什么是这样的结果呢?