i++,++i的含義:
i++:使用完畢後在自加,既遇到結束標誌(, 函式的() ;三種標誌)後再自加。
++i:先自加再使用
下面舉幾個例子來具體說明
int i = 2;
int num;
num = (++i) + (++i) + (++i) + (++i);
printf("num = %d\t i = %d\n",num,i);
return 0;
結果:num = 19 i = 6
分析:4 + 4+5 +6=19
執行第乙個++i的時候i= 3,第二個++i的時候i= 4,此時i已經為4了,所以4+4,第三個++i時i= 5,所以4+4+5,第四個++i時i= 6,所以4+4+5+6.
如果num =(i++)+(i++)+(i++)+(i++)
結果:num = 8 i = 6
分析:num = 2+2+2+2
i = 2+4
因為i++是使用完再自加,所以num=2+2+2+2
所以使用完後i加上4
如果是在函式中
int func(int a,int b)
int main()
結果:3 4
分析:因為函式是從右開始傳參的,++i被替換成變數名;i++被替換成數值;變數名還是變數名。
所以++i被替換成i,往左看有","所以i+1=3,i++ 替換成數值i= 3,往左看有"("所以i = 3+1,所以結果為3,4
c語言中結構的sizeof如何計算
演算法思路 1.offset設定為0.offset就是分配空間的偏移量 2.依次對結構裡面的每個成員p進行下面的計算。如果計算完畢,跳到第7步。2.計算temp min p的對齊引數,系統對齊引數 p如果是內建資料型別,對齊引數有編譯器給出。比如char的對齊引數是1等等。系統對齊引數由 pragr...
C語言中結構體長度計算
結構體的長度並不是簡單地將結構體地所有成員相加 它中間會出現偏移量,我們以下為例 現有如下結構體 struct good 我們假設初始位址開始為0 c的長度為1,0可以整除1,當c填充到記憶體後位址加1,即此時到了位址為1的位置 id的長度為4,位址位置1不可以整除4,所以在c填充到記憶體時需要加3...
C語言中的 ,
c語言中的 今天在分析乙份原始碼的時候遇到了如下 define uf call x report file line x,x static int report char file,int line,char call,int irc return irc 網上參考 cpp view plain c...