【C語言】不要在函式呼叫的時候使用自加自減運算子
阿新 • • 發佈:2021-01-13
技術標籤:C語言
下面這段程式,打印出來的數字應該是什麼?
#include "stdio.h"
int a=1;
int main()
{
int b=1;
printf("%d %d\n\r",a++,++a);
printf("%d %d\n\r",b++,++b);
}
a和b分別是全域性變數和區域性變數,如論printf列印的時候是從左到右運算,還是從右到左運算,兩行結果都應該一致才對,但是真正的結果卻是下圖(codeblocks程式設計環境)
我們把++a和a++的位置換一下,改為下面的程式
#include "stdio.h"
int a=1;
int main()
{
int b=1;
printf("%d %d\n\r",++a,a++);
printf("%d %d\n\r",++b,b++);
}
結果就變為了:
所以,在函式呼叫的時候,不要使用自加自減運算子,因為你不知道會得到什麼樣的結果!