应该是什么结果“c - = --c - c ++;”在C语言?

时间:2016-10-29 09:26:32

标签: c

我正在尝试以下代码:

#include <stdio.h>

int main()
{
    int c =0;
    c -= --c - c++;
    printf("%d \n",c);
    return 0;
}

当我使用在线c编译器(https://www.tutorialspoint.com/compile_c_online.php)编译并运行它时,结果为-1。但我预计它会为0。 所以,我在我的本地Dev C ++(Windows)上尝试它,结果是0.

  1. 结果应该是0吗?
  2. 如果是这样,为什么2个gcc编译器(好吧,他们处于不同的平台)给了我2个不同的结果?
  3. 我一直在寻找某种自动标志化,这可能产生不同的结果,但我没有成功。

1 个答案:

答案 0 :(得分:4)

这是未定义的行为(3个修改,其间没有序列点到同一个变量)