2013-08-18 77 views
-2
#include <stdio.h> 
main() 
{ 
int a=1; 
printf("%d %d %d %d %d\n",++a,a++,++a,++a,a++); 
a=1; 
printf("%d %d %d %d %d",a,a++,a,++a,a); 
} 

當我運行它時,它會給出以下輸出。解釋以下C程序的輸出

6 4 6 6 1 
3 2 3 3 3 

請解釋代碼。

+5

**未定義的行爲**。 [仔細閱讀**,如果你想知道爲什麼。](http://stackoverflow.com/questions/4176328/undefined-behavior-and-sequence-points) – WhozCraig

+1

聽起來像作業。 –

+1

我是新來的C語言...請解釋我的代碼..它不是作業... – user1521160

回答

2

函數自變量的求值順序沒有定義,因此可以按任意順序應用運算符++。您正在查看未定義行爲的結果。