C / C ++中的优先顺序

时间:2014-08-23 16:30:01

标签: c operator-precedence

我想知道为什么这段代码在不同的编译器上显示不同的输出。 这是代码: -

int a = 5;
printf("%d %d",a++,++a);

输出: - 6 7(Visual Studio)

输出: - 6 6(CodeBlocks)

1 个答案:

答案 0 :(得分:3)

这是未定义的行为,它取决于您使用的编译器。并且添加它与优先顺序无关。

您可以查看Precedence and Order of Evaluation

同样来自C99标准:

  

未指定操作数的评估顺序。如果尝试   用于修改赋值运算符的结果或访问它   在下一个序列点之后,行为未定义。