LxL*_*LxL 1 c c++ operator-precedence c++11
考虑以下代码:
int func1()
{
cout<<"Plus"<<endl;
return 1;
}
int func2()
{
cout<<"Multiplication"<<endl;
return 2;
}
int main()
{
cout<<func1()+4*func2();
}
Run Code Online (Sandbox Code Playgroud)
根据这个页面*运算符的优先级高于+运算符所以我希望结果是:
Multiplication
Plus
9
Run Code Online (Sandbox Code Playgroud)
但结果是
Plus
Multipication
9
Run Code Online (Sandbox Code Playgroud)
!编译器解析器发生了什么?编译器是否更喜欢操作员关联?所有c/c ++编译器中的输出是否相同?
编译器可以按任何顺序自由地评估函数 - 表达式中唯一保证评估顺序的是序列点; 运营商||,&&,,,和?三元条件运算的? :是序列分.在每种情况下,左侧都会在触摸右侧之前评估其所有值和副作用.
| 归档时间: |
|
| 查看次数: |
394 次 |
| 最近记录: |