1. 程式人生 > >在C語言中,使用字尾形式的++或--時,何時執行自增或自減操作?

在C語言中,使用字尾形式的++或--時,何時執行自增或自減操作?

讓我們先看一段程式碼

i = 1
printf("i is %d\n", i++); // prints "i is 1"
printf("i is %d\n", i);   // prints "i is 2"

1.C語言標準引入了“順序點”的概念,並且指出“應該在前一個順序點和下一個順序點之間對儲存的運算元的值進行更新”。在C語言中有多種不同型別的順序點,表示式語句的末尾是其中一種。在表示式語句的末尾,該語句中的所有自增和自減操作都必須執行完畢,否則不能執行下一條語句。

2.還有一些運算子(邏輯與、邏輯或、條件和逗號)對順序點也有影響。函式呼叫也是如此:在函式呼叫執行之前,所有的實際引數必須全部計算出來。如果實際引數恰巧是含有++或–運算子的表示式,那麼必須在呼叫前進行自增或自減操作。