[課業] C程式問題

看板Examination (國家考試)作者 (落寞之心)時間13年前 (2013/01/03 19:02), 編輯推噓4(400)
留言4則, 4人參與, 最新討論串1/1
#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

01/03 20:02, , 1F
好問題
01/03 20:02, 1F

01/03 21:21, , 2F
不同compiler會有不同結果
01/03 21:21, 2F

01/03 22:24, , 3F
因為文法沒規定他的順序,所以各家Compile可以隨意來
01/03 22:24, 3F

01/04 12:07, , 4F
x是全域變數,y是區域變數
01/04 12:07, 4F
文章代碼(AID): #1GvMLA2X (Examination)
文章代碼(AID): #1GvMLA2X (Examination)