1) printf函式對於括號內的表示式是從右向左執行,如 printf("%d,%d",i++,++i);先執行 ++i,再執行i++;
從左向右輸出。
2) 對於++i和i++:
++i是先自加,再呼叫;
i++是先呼叫,再自加。
**1
#include void main()
結果:
22,22
21,22
21,20
22,20
分析:printf語句1:先執行右邊++c,先自增此時c=21,再呼叫,而此時cpu並沒有到呼叫它的時候,printf第二個格式化的值對應的數字現在還不確定;
再執行左邊++c,先自增此時c=22,再呼叫,此時輸出c的值22;
接著再輸出第二個,因為cpu沒有記住對第二的呼叫,他會找當前b的值,當前b的值是22,所以輸出22,22。
printf語句2:先執行++a,此時a=21(此時不儲存輸出值);
再執行a++時,因為先呼叫,所以輸出a的值為21,a再自增,此時a=22;
再輸出a的值為22;
printf語句3:先執行右邊的b++,先輸出b的值為20,b再自增,此時b=21;
再執行左邊的b++,先輸出b的值為21,b再自增。
因此結果從左至右輸出:21,20
printf語句4:同理。
**1
#include void main()
輸出
0,1,0
**2
#include void main()
輸出
2,1,2,2,2,2
C語言自增自減
i,i 使用i之前,先使i的值加 減 1。i i 使用i之後,再使i的值加 減 1。其中 i和i 的作用相當於i i 1。但是 i和i 不同之處在於 i是先執行i i 1後,再使用i的值 而i 是先使用i的值後,再執行i i 1。例如 i 6a i i的值先變成7,再賦值給a,a的值才為7 b i ...
C語言中自增自減的編譯原理
i 與 i 的主要區別有兩個 1 i 返回原來的值,i 返回加1後的值。2 i 不能作為左值,而 i 可以。毫無疑問大家都知道第一點 不清楚的看下下面的實現 就了然了 我們重點說下第二點。首先解釋下什麼是左值 以下兩段引用自中文維基百科 右值引用 詞條 左值是對應記憶體中有確定儲存位址的物件的表示式...
C語言 自增( ) 自減( )運算
1.作用 自增運算使單個變數的值增 自減運算使單個變數的值減 2.用法與運算規則 自增 自減運算子都有兩種用法 1 前置運算 運算子放在變數之前 變數 變數 先使變數的值增 或減 然後再以變化後的值參與其它運算,即先增減 後運算。2 後置運算 運算子放在變數之後 變數 變數 變數先參與其它運算,然後...