有关C ++中运算符优先级的问题

时间:2019-11-09 23:14:55

标签: c++

输出为34,但此表达式如何计算?

能不能带括号显示?

正确的运算符优先级为:

  

a + =(((((((2 * i ++)%5)* 4)+(--j))-(3 / k))+ 2);

但是我认为正确的应该是:

  

a + =((((((2 * i ++)%(5 * 4))+(--j))-(3 / k))+ 2);

#include <iostream>
using namespace std;

int main()
{
    int a = 3, i = 12, j = 14, k = 16;
    a += 2 * i++ % 5 * 4 + --j - 3 / k + 2;
    cout << a;
}

1 个答案:

答案 0 :(得分:3)

运算符/* type ICart = { property1: string; property2?: undefined; someOtherProperty: string; } | { property2: string; property1?: undefined; someOtherProperty: string; } */ */具有相同的优先级,并且从左到右进行分组。因此它是%而不是((2 * i++) % 5) * 4