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

Why does cout and return give different values in the following c++ code?

本文关键字:代码 c++ cout return 为什么      更新时间:2023-10-16
#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

运算符优先级。

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

解析为:

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

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