<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
-a++ ,如果a=3,那麼-a++輸出的結果是多少? -3還是-4?
先來了解一下算術運運算元的優先順序和結合性:
運運算元 | 優先順序 | 結合性 | |
---|---|---|---|
++、--、+(正)、-(負) | 同級 | 高 ^ | | 低 | 右結合 |
*、/、% | 同級 | 左結合 | |
+(加)、-(減) | 同級 | 左結合 |
右結合*、/、%同級左結合+(加)、-(減)同級左結合
在C語言中,計算表示式的值也需要按運運算元的優先順序從高到低的順序進行計算。
例如,表示式 a+b*c 相當於 a+(b*c).
若運算元兩側運運算元的優先順序相同,則按結合性(結合方向)決定計算順序,
若結合方向為“從左到右”,則運算元先與左邊的運運算元結合;
若結合方向為“從右到左”,則運算元先與右邊的運運算元結合;
例如,表示式-a++,- 與 ++ 同級,此時按結合方向決定計算順序(右結合),相當於 -(a++)。
我們來執行一下 -a++ 感受一下:
#include <stdio.h> int main() { int a = 3; int b = 5; printf("%dn",-a++); printf("%dn",a); printf("%dn",-++b); printf("%dn",b); return 0; }
在執行結果出來之前,我們先來猜猜輸出結果是怎樣的? -4 4 -6 6 ?如果是這樣的話大概忘記了++前置和後置了?
執行結果:
使用的編譯軟體:CLion
~~~結果有疑惑?請看下方解惑~~~
(初學者提示:下圖中左邊箭頭所指即當前程式執行到這一行,執行到當前行時右邊會有變數當前取值。)
圖1: 此時我們發現 -a++ 中,a的值還是3,這是因為 a++ ,++後置,
所以在這裡print 輸出結果是-3,
圖2:在這第6行執行完後,a++生效,也就是a=a+1,這時候a=4,所以在這裡第7行執行print輸出的結果是4。
圖3:這裡這個b是為了對比-a++的結果的。-++b,意思是 -(++b),++前置,那麼我們先b=b+1,這時候b=6,再走-b的輸出。也就是print 輸出 -6。
圖4:這裡輸出b,此時我們從第9行時b已經++b,因此b=5+1=6,所以在這裡輸出為6。
int a = 100; 最開始時a是100。
列印 a++; 這個printf會列印a++的值,注意是a++表示式的值,看我前面的講解,a++的值就是a的值,也就是100。 別忘了這語句結束後a的值就會自增1(也就是副作用發生了)。
列印 ++a; 目前a的值為101。現在要列印++a表示式的值,++a的值就等於a+1,所以會列印出102。 此語句後a=101+1=102。
列印 --a; 這次要列印--a表示式的值,同自增一個道理,--a的值等於a-1,所以會列印出101。 此語句後a=102-1=101。
列印 a--; a--表示式的值就是a的值,所以列印出101。 此語句後a=101-1=100。
列印 a+1; 這表示式與自增無關,只是列印a+1的值,就是101。 對a本身的值沒有影響(加法表示式沒有副作用)。
列印 a; 這時a的值當然還是100了。
綜上,-a++ ,如果a=3,那麼-a++輸出的結果是-3,運算順序還是 -(a++),只是++後置,此時a=a+1要在執行完這一行才執行,如果是++前置,那麼也就是 -++a 的情況,那麼輸出的結果就是-4。
到此這篇關於C語言中-a++和-++a運算順序的文章就介紹到這了,更多相關C語言-a++和-++a運算順序內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45