最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

怎么算?a++是獨(dú)立出來的嗎?為啥a的值最后變化了?

a+b%a-b/a+a*b-a++

正在回答

2 回答

先確定你清楚“運(yùn)算符”、“表達(dá)式”和“語句” 的關(guān)系:

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

表達(dá)式后面加上一個(gè)分號(hào)就是一個(gè)“語句”。

那么這個(gè)自增運(yùn)算符的副作用(使a增加1)什么時(shí)候發(fā)生的呢? 我只能說在“序列點(diǎn)”之后肯定都發(fā)生了。代碼中有的位置被稱為“序列點(diǎn)”,具體哪些位置是序列點(diǎn)有些復(fù)雜,簡(jiǎn)單地說:“語句結(jié)束時(shí)”和“邏輯運(yùn)算符的兩個(gè)操作數(shù)之間”......都算是序列點(diǎn)。這序列點(diǎn)之前的運(yùn)算符的副作用,在執(zhí)行到這點(diǎn)以后都保證會(huì)發(fā)生。注意并不是在這一點(diǎn)之后就突然發(fā)生的,這些副作用可能在序列點(diǎn)前的任何一個(gè)位置發(fā)生,C標(biāo)準(zhǔn)只是規(guī)定在序列點(diǎn)之后這些副作用必須都已經(jīng)發(fā)生了。

求值順序決定了哪些子表達(dá)式先運(yùn)算,但是并沒有規(guī)定它們操作數(shù)的求值順序。副作用什么時(shí)候發(fā)生更是與優(yōu)先級(jí)沒有關(guān)系。


對(duì)于你的這個(gè)題:

題本身就有問題!! ?原因還是因?yàn)樾蛄悬c(diǎn)。在a+b%a-b/a+a*b-a++這個(gè)大復(fù)合表達(dá)式中,最后有一個(gè)a++,這個(gè)子表達(dá)式的值是3沒有錯(cuò)(因?yàn)槭窍惹笾翟僮栽觯谡麄€(gè)表達(dá)式中a還出現(xiàn)了很多次,就是說需要取a的值很多次,可是最后這個(gè)子表達(dá)式a++的副作用在什么時(shí)候發(fā)生是并不確定的。我只知道在整個(gè)語句結(jié)束之后a的值肯定是4,但a也可能在取第一個(gè)a的值時(shí)就已經(jīng)是4了......也可能第一個(gè)a還是3,第二個(gè)a就是4了......也可能所有的a都是3......這一切都是有可能的。所以本題完全就錯(cuò)了?。?/p>


P.S. 這個(gè)C課程的水平實(shí)在是......別浪費(fèi)時(shí)間學(xué)了

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

正在進(jìn)化的程序猿 提問者

非常感謝!
2015-07-07 回復(fù) 有任何疑惑可以回復(fù)我~
#2

正在進(jìn)化的程序猿 提問者

那還有其他的水平比較高的C課程嗎?
2015-07-07 回復(fù) 有任何疑惑可以回復(fù)我~
#3

onemoo 回復(fù) 正在進(jìn)化的程序猿 提問者

http://mooc.guokr.com/topic/programmers/ 另外推薦《C primer plus》
2015-07-07 回復(fù) 有任何疑惑可以回復(fù)我~

http://yifanck.cn/code/5175? 看看這節(jié)的運(yùn)算符順序?

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

怎么算?a++是獨(dú)立出來的嗎?為啥a的值最后變化了?

我要回答 關(guān)注問題
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)