c語言中的自增運算

2021-08-29 05:18:44 字數 942 閱讀 5200

1樓:

b++和++b的區別

b++首先返回b的值、然後b自增1

++b首先b自增1,然後返回b的值

2樓:平槐浮萍韻

y=++a+a+++a++;

執行順序如下

a=a+1;

//a=1

y=a;

//y=1

y=y+a

//y=2

a=a+1;

//a=2

y=y+a;

//y=4

a=a+1;

//a=3

++a,先做自增,再使用a的值

a++,先使用a的值,再做自增

3樓:弭晨威釗

y=++a+a+++a++;雙目運算的從右向左運算,先計算最右邊的a++,這時候因為a=0,所以a++這個表示式的值為0,完了以後a加1,a的值就變成了1。然後算中間的a++,同理這個時候a=1,所以a++的值為1,完了以後a加1,a的值就變成了2.最後算最左邊的++a,這個時候是把a先加了1,a的值變成3,所以表示式++a的值為3,完了以後再把a+1.

所以得到y=3+1+0=4,而此時如果你再輸出a的值,就會發現a已經變成4了

4樓:曠亙酆一瑾

首先++優先順序大於+

所以等價於:int

y=(++a)+(a++)+(a++);

前置++,先加1後返回值。

後置++,先返回值後加1。

(++a)=1(執行完後,此時a的值為1)然後a++,先返回a的值,所以(++a)+(a++)=2(執行完後,此時a的值為2)。

所以(++a)+(a++)+(a++)=4(執行完後,此時a的值為3)

5樓:匿名使用者

b=2,自增厚應該等於3吧?2+1=21?把你的問題檢查一下吧

C語言指標自增自減運算,c語言中指標可不可以用在自增自減運算子中

printf d,p 指向陣列首地址 printf d,p 地址先加1然後取值,也就是a 1 printf d,p 取地址p加1後的值,就是a 2 printf d,p 先取p得值,然後再地址減1,最後p指向a 1 printf d,p 先取p的值,然後p指標加1 printf d,p 直接取p的值...

c語言的相關運算,C語言中,有哪些算術運算子

後自增自減抄相當於這bai 樣一個du 函式x 可以這樣zhi理解 i x x x 1 i y x 10 第二題 dao i x x 1 i j x x 1 j 第一題bai因為1 0 而值為10 第二du題,答案為4無爭議。你說的zhi問題dao是編譯器專 的問題,例屬如 x x x 的問題,類似...

c語言中運算子優先順序排序C語言中運算子優先順序排序

c語言中運算子優先順序排序如下 分為優先順序15級 1 圓括號 下標運算子 分量運算子的指向結構體成員運算子 結構體成員運算子 2 邏輯非運算子 按位取反運算子 自增自減運算子 負號運算子 型別轉換運算子 型別 指標運算子和取地址運算子 長度運算子 sizeof 3 乘法運算子 除法運算子 取餘運算...