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

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

c語言基礎(chǔ)習(xí)題求解謝謝

c語言基礎(chǔ)習(xí)題求解謝謝

C
慕雪6341044 2017-05-16 19:45:16
m--不是應(yīng)該是先輸出m的當(dāng)前值再改變m的值嗎為啥不選c main() int m=5; if(m++>5) printf(%dm) else printf(%d,m--)
查看完整描述

3 回答

已采納
?
望遠(yuǎn)

TA貢獻(xiàn)1017條經(jīng)驗(yàn) 獲得超1032個(gè)贊

輸出6,有問題嗎?

查看完整回答
1 反對 回復(fù) 2017-05-16
?
onemoo

TA貢獻(xiàn)883條經(jīng)驗(yàn) 獲得超454個(gè)贊

“m--不是應(yīng)該是先輸出m的當(dāng)前值再改變m的值嗎”

不要這么記,因?yàn)檫@句話中的“輸出”是什么意思??? 這可能會使你錯(cuò)誤地理解自增減表達(dá)式的作用。

m++ 表達(dá)式的值就是 m 自增前的值,當(dāng)然這個(gè)表達(dá)式還會使 m 自增 1。

同理,m-- 表達(dá)式的值是 m 自減前的值,當(dāng)然這也會使 m 自減 1。


那么這個(gè)代碼中:

  • 一開始,if 中的判斷條件是 m++ 表達(dá)式和 5 的大小作比較,m++ 表達(dá)式的值就是 5,所以 5 > 5 的結(jié)果是 false,故代碼將進(jìn)入 else 分支。

  • 代碼執(zhí)行到 else 分支,重要的一點(diǎn)是:這時(shí) m 已經(jīng)完成了自增,這時(shí) m 的值是 6。

    這里要 print 的是 m-- 表達(dá)式的值,同理,m-- 表達(dá)式的值還是 6,所以會打印出 6。當(dāng)然 m 還會被自減 1,所以最終 m 的值會是 5。

注意:我在上面的描述中用了“m++ 表達(dá)式的值”和“m 的值”這兩中說法。沒錯(cuò),它們是不同的東西! 這個(gè)代碼中使用到的分別是 m++ 和 m-- 表達(dá)式的值,并沒有直接用 m 的值,所以不要被 m 本身值的增減變化誤導(dǎo)了。


其實(shí)我給你之前問題的回答中提到了這些內(nèi)容,如果你還是不太清楚的話,請看?http://idcbgp.cn/wenda/detail/350085?中提到的那個(gè)詳細(xì)解答。

查看完整回答
1 反對 回復(fù) 2017-05-19
?
onemoo

TA貢獻(xiàn)883條經(jīng)驗(yàn) 獲得超454個(gè)贊

對了,我說的格式化是指這樣的效果:

int?main(void)
{
????int?m=5;
????if(m++>5)
????????printf("%d",?m);
????else
????????printf("%d",?m--);
}

這樣比你直接寫代碼要好看多了吧?

而且自帶行號,方便別人給你指出哪行有問題。

查看完整回答
反對 回復(fù) 2017-05-19
  • 3 回答
  • 0 關(guān)注
  • 1622 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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