C中的后增量和前增量

时间:2012-11-26 07:20:36

标签: c

  

可能重复:
  Could anyone explain these undefined behaviors (i = i++ + ++i , i = i++, etc…)

下面有一个代码,我在理解代码的逻辑时遇到了一个非常严重的问题。

#include <stdio.h>
#include <stdlib.h>

int main(void )
{
int i = 1 ;
printf("\n%d %d %d %d\n",++i,i++,i++,++i) ;
return 0 ;
}

我在名为Mandriva的linux发行版下使用gcc编译器。在上面提到的我在printf语句中使用了一个变量的pre和post增量。 我应该得到的输出是2 2 3 5,但我得到一个不同的输出。 请帮我这个代码。

我觉得这段代码很难。