第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

我不太明白下面的結(jié)果是怎么算出來的(自增自減運算)

http://img1.sycdn.imooc.com//5831584900010c1105990575.jpg

我不太明白下面的結(jié)果是怎么算出來的(自增自減運算)

正在回答

2 回答

在前面的回答中找到的正確的回答

通常說,a++是先取值后運算,++a是先運算后取值。實際上這里涉及好幾個基本概念!?先確定你清楚“運算符”、“表達式”和“語句”的概念:

++ 是一個“自增運算符”,自增運算符有兩種形式:前綴自增(++a)和后綴自增(a++)。

運算符和操作數(shù)合起來就是一個表達式(a++、++a都是表達式,a就是操作數(shù))。注意:每一個表達式本身都有值(和其類型),有的表達式還有“副作用”。比如自增表達式的副作用就是使其操作數(shù)自增1。那么自增運算表達式的值是什么呢? a++ 的值就是 a 的值,而 ++a 的值等于 a+1。?

表達式后面加上一個分號才是一個完整的“語句”。

還有一個關鍵內(nèi)容:前面說使操作數(shù)自增1是自增表達式的副作用,那么這個副作用什么時候發(fā)生呢? 準確地說是在“序列點”后保證會發(fā)生。 序列點這個概念比較復雜,對于例題中這個簡單的情況,你只需要知道:在本語句結(jié)束后,這些副作用肯定發(fā)生了。


下面講解下3-3的例題:

int a = 100; 最開始時a是100。

打印 a++; ?這個printf會打印a++的值,注意是a++表達式的值,看我前面的講解,a++的值就是a的值,也就是100。 別忘了這語句結(jié)束后a的值就會自增1(也就是副作用發(fā)生了)。

打印 ++a; ?目前a的值為101。現(xiàn)在要打印++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本身的值沒有影響(加法表達式?jīng)]有副作用)。

打印 a; ?這時a的值當然還是100了。


2 回復 有任何疑惑可以回復我~
#1

安小瞳 提問者

謝謝大神,棒
2016-11-28 回復 有任何疑惑可以回復我~
#2

爲了自己的時間奮鬥

這個解答很清晰,謝謝?。?!
2016-12-08 回復 有任何疑惑可以回復我~

剛開始a=100,第一個printf時先輸出a=100然后給a自增,此時a=101,
第二個printf時先給a自增,此時a=102然后輸出a=102,

第三個printf時先給a自減,此時a=101然后輸出a=101,

第四個printf時先輸出a=101,然后a自減,此時a=100,

第五個printf時直接輸出a+1=101,但是沒有改變a的值,所以此時a還是為100,

第六個printf時直接輸出a=100;

1 回復 有任何疑惑可以回復我~
#1

qq_xiaopiaor_04013783

你算得結(jié)果和教程給的運算結(jié)果不一樣
2016-11-20 回復 有任何疑惑可以回復我~
#2

King丶賓 回復 qq_xiaopiaor_04013783

一樣的,輸出的才是顯示出來的,
2016-11-21 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C語言入門
  • 參與學習       926896    人
  • 解答問題       21532    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

我不太明白下面的結(jié)果是怎么算出來的(自增自減運算)

我要回答 關注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號