输出为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;
}
运营商*
,/
并%
具有相同的优先级,并进行分组从左到右。因此它是((2 * i++) % 5) * 4
不是(2 * i++) % (5 * 4)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句