为什么cout和return在以下c ++代码中给出不同的值?

时间:2016-03-03 05:33:25

标签: post return increment cout ternary

#include <iostream>

using namespace std;

int fn1 (){
    int a = 5;
    int b = 6;
    cout << (++a > b--)? (a+b):(a-b) ;
    a = 5;
    b = 6;
    return (++a > b--)? (a+b):(a-b);
}

int main (){
    cout << fn1();
}
  

//输出:01

1 个答案:

答案 0 :(得分:1)

运营商优先权。

cout << (++a > b--)? (a+b):(a-b);

被解析为:

(cout << (++a > b--))? (a+b):(a-b);

首先评估cout <<然后评估其余部分。