C++,三元运算符和cout

use*_*693 0 c++ ternary-operator conditional-operator operator-keyword

这段代码不起作用

int main(){
cout << 5 ? (5 ? 0 : 2) : 5;
system("pause");
return 0;
}
Run Code Online (Sandbox Code Playgroud)

这段代码有效

int main(){
cout << (5 ? (5 ? 0 : 2) : 5);
system("pause");
return 0;
}
Run Code Online (Sandbox Code Playgroud)

不明白为什么?

Jar*_*d42 6

cout << 5 ? (5 ? 0 : 2) : 5;
Run Code Online (Sandbox Code Playgroud)

被解析为

(cout << 5) ? (5 ? 0 : 2) : 5;
Run Code Online (Sandbox Code Playgroud)