This question already has answers here:
Why are these constructs using pre and post-increment undefined behavior?
(14个回答)
2年前关闭。
你能给我解释一下吗
我已经阅读了关于stackoverflow的几乎所有问题
未定义的行为
前置/后置公司dec。运算符优先级/关联性
使用括号
但结果尚无定论。
请解释一下,我明天要面试。
如果我犯了错误,请帮助我纠正它们。
谢谢
(14个回答)
2年前关闭。
你能给我解释一下吗
我已经阅读了关于stackoverflow的几乎所有问题
未定义的行为
前置/后置公司dec。运算符优先级/关联性
使用括号
但结果尚无定论。
请解释一下,我明天要面试。
int a, x = 0;
// value of x ------> a(sum)
//gcc 4.9.9.2[dev cpp] 2 1 2 4 5 14
//acc to my calculation 2 0 2 4 5 13
//geeksforgeeks compiler 5 5 5 5 5 15
//gcc 6.3 [codechef ide] 5 5 5 5 5 15
a = ((((++x + x++) + ++x) + ++x) + ++x);
printf("%d....%d", x, a);
return 0;
如果我犯了错误,请帮助我纠正它们。
谢谢
最佳答案
没有序列点,因此您的代码将调用未定义行为。
括号不会引入序列点,因此尽管使用了括号,但仍会调用UB。
关于c - 单行前/后增量减量评估,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47467712/
10-11 21:13