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

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

不明白自加自減的過程?

注意:無論是a++還是++a都等同于a=a+1,在表達式執(zhí)行完畢后a的值都自增了1,無論是a--還是--a都等同于a=a-1,在表達式執(zhí)行完畢后a的值都自減少1。

對于這個自加自減的問題搞不明白,有人能說得簡單,明白,詳細點嘛?最好用100的那個例題做詳細說明,無盡感謝,謝謝!

正在回答

18 回答

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

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

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

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

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


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

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

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

打印 ++a; ?目前a的值為101?,F(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本身的值沒有影響(加法表達式沒有副作用)。

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

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

雜果繪 提問者

非常感謝!
2015-06-26 回復 有任何疑惑可以回復我~
#2

章然

講的很詳細,謝謝!
2015-06-30 回復 有任何疑惑可以回復我~
#3

一度onetems

太感謝了
2015-07-02 回復 有任何疑惑可以回復我~
#4

qq_藍鳥_1

解釋很到位啊!
2015-09-28 回復 有任何疑惑可以回復我~
#5

空_

非常感謝!
2015-10-10 回復 有任何疑惑可以回復我~
#6

/無所謂的結局…×←_←

終于弄清楚了
2015-10-13 回復 有任何疑惑可以回復我~
#7

檸檬汁好喝

henlihai
2015-10-13 回復 有任何疑惑可以回復我~
#8

Backkom

非常感謝
2015-10-20 回復 有任何疑惑可以回復我~
#9

笑川

mark
2015-10-21 回復 有任何疑惑可以回復我~
#10

包小龍蝦

序列點是因為有分號嗎?因為有分號所以副作用要在分號前都結束,如果是a++;值就是a+1而不是a了是嗎?
2018-08-01 回復 有任何疑惑可以回復我~
#11

onemoo 回復 包小龍蝦

a++表達式的值是a自增之前的值,并不是a+1。 關于何時是序列點,C標準有比較復雜的一組規(guī)定。語句結束時算是序列點,也就是你說的分號處。
2018-08-01 回復 有任何疑惑可以回復我~
#12

包小龍蝦 回復 onemoo

我的意思是說如果單單是a++表達式的值是a自增之前的值,并不是a+1。但是如果是a++;(這邊a++后有分號)值就是a+1而不是a了是嗎?我這樣理解對嗎?
2018-08-04 回復 有任何疑惑可以回復我~
#13

onemoo 回復 包小龍蝦

“a++表達式的值是a自增之前的值,并不是a+1”這點沒錯。“但是如果是a++;(這邊a++后有分號)值就是a+1而不是a了是嗎”—— 你說的“值就是a+1”指的是誰的值呢?? a++; 如果程序運行到分號之后,那么這個a++表達式已經求值完畢執(zhí)行完畢(a++表達式的值就是a+1)了。運行到分號之后就沒有a++表達式什么事了,而這時變量a的值肯定已經自增了。
2018-08-08 回復 有任何疑惑可以回復我~
#14

慕瓜6542481

一下明白了,非常感謝!
2021-05-27 回復 有任何疑惑可以回復我~
查看11條回復

感謝,太感謝了,思考了好久終于明白了。

0 回復 有任何疑惑可以回復我~

樓主棒棒,簡單明了

0 回復 有任何疑惑可以回復我~

關鍵就在副作用上面 ?初學者 教材里沒提到

0 回復 有任何疑惑可以回復我~

感謝樓主~??!

0 回復 有任何疑惑可以回復我~

非常感謝

0 回復 有任何疑惑可以回復我~

贊一個~終于看懂了

0 回復 有任何疑惑可以回復我~

原來執(zhí)行printf 語句要根據(jù)前一個printf的執(zhí)行結果再執(zhí)行下一個printf的?? 謝謝Lz的詳細解答?? 棒棒的

0 回復 有任何疑惑可以回復我~

謝謝,懂了

0 回復 有任何疑惑可以回復我~

通俗易懂


0 回復 有任何疑惑可以回復我~
首頁上一頁12下一頁尾頁

舉報

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

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

進入課程

不明白自加自減的過程?

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

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

幫助反饋 APP下載

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

公眾號

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