c語言中i , i的計算

2021-07-14 22:04:51 字數 771 閱讀 1268

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...