作者meya (落寞之心)
看板Examination
標題[課業] C程式問題
時間Thu Jan 3 19:02:31 2013
#include<stdio.h>
int x=0;
int main(){
int y=0;
printf("%d %d %d %d\n",x+1,x++,x+1,x);
printf("%d %d %d %d\n",y+1,y++,y+1,y);
return 0;
}
用gcc編譯,以上會輸出
2 0 1 0
2 0 1 1
(^這個)
我知道是從右至左執行,
但是x和y為什麼最後一個輸出會不一樣呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.241.154.233
1F:推 bobobola:好問題 01/03 20:02
2F:推 Mewra:不同compiler會有不同結果 01/03 21:21
3F:推 jcpf126:因為文法沒規定他的順序,所以各家Compile可以隨意來 01/03 22:24
4F:推 garfield7321:x是全域變數,y是區域變數 01/04 12:07