1. 程式人生 > 其它 >【C語言】不要在函式呼叫的時候使用自加自減運算子

【C語言】不要在函式呼叫的時候使用自加自減運算子

技術標籤: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++);
}

結果就變為了:
在這裡插入圖片描述

所以,在函式呼叫的時候,不要使用自加自減運算子,因為你不知道會得到什麼樣的結果!