當我寫這個的C代碼,我隨口編碼:後增量運算用C
#include <stdio.h>
int main()
{
int i;
i = 10;
printf("i : %d\n",i);
printf("sizeof(i++) is: %d\n",sizeof(i++));
printf("i : %d\n",i);
return 0;
}
而且,當我跑的代碼,結果我得到的是,
i : 10
sizeof(i++) is: 4
i : 10
我百思不得其解通過這個結果,因爲我期望i ++內的sizeof運算符增加i。但似乎不是。因此,出於好奇,我寫了下面的程序:
#include <stdio.h>
int add(int i)
{
int a = i + 2;
return 4;
}
int main()
{
int i;
i = 10;
printf("i : %d\n",i);
printf("sizeof(i++) is: %d\n",add(i++));
printf("i : %d\n",i);
return 0;
}
這個程序,輸出是:
i : 10
sizeof(i++) is: 4
i : 11
現在我越來越困惑。
對不起,如果這是一個noob問題(我是),但我真的不明白,即使如何谷歌這樣的問題!
爲什麼我在這兩個程序中的價值不同?請幫忙!
@ ring0我在Windows上運行gcc 4.6.3在Windows 12.04虛擬機之上。 – user2290802