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 乘法運算子 除法運算子 取餘運算...