xyz*_*xyz 1 c++ operator-precedence
为什么以下打印出"World Hello!"?
根据我的理解,根据运算符优先级,这应该从右边开始评估.但相反,从左到右似乎是正确的.为什么是这样?
#include <iostream>
using namespace std;
char print() {
cout << "World";
return '!';
}
int main() {
cout << "Hello " << print() << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我不认为该标准print()对于关于<<运营商应用的确切时刻给出任何保证.
在您的情况下,它看起来像是先print()被调用,然后cout << Hello被评估,然后才被[result of the previous expression] << [result of print()]评估.