后缀/前缀递增/递减操作如何在c中的不同编译器中工作?

时间:2019-01-09 17:19:43

标签: c operators post-increment pre-increment

我知道在c标准(不是c ++)中没有明确定义后缀/前缀增加/减少操作。增量和减量在不同的编译器中的工作方式不同。我对其中两个Visual Studio和GCC感兴趣。例如,据我所知,以下代码将给出不同的结果。

#include <stdio.h>

int main() {

int a = 3, b = 5;

int x = a++*++a;
int y = ++a*a++;
int z = ++a*--b + a++*b--;

printf("%d, %d, %d, %d, %d", a, b, x, y, z);

return 0;
}

这主要表现在相同等式中的后缀和前缀运算干扰时。我不明白规则。两种编译器有什么区别?他们如何处理?

0 个答案:

没有答案