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

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

求解,為啥結(jié)果輸出是37

求解,為啥結(jié)果輸出是37

C
日光傾城4 2017-06-25 21:50:22
#include<stdio.h>main(){???int?i=12;???int?n;???n=(i++)+(i--)+(i--);???printf("n=%d\n",n);}
查看完整描述

1 回答

已采納
?
onemoo

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

這個 (i++)+(i--)+(i--) 大復(fù)合表達(dá)式是幾個自增減表達(dá)式的值的和。

i ++ 表達(dá)式的值是 i 自增前的值,i -- 表達(dá)式的值也是 i 自減前的值,這沒錯。 但不要忘了這樣的自增自減表達(dá)式還有副作用——那就是會使 i 自增或自減。

在你這個表達(dá)式的情況下,C 語言并沒有具體規(guī)定 i 是何時自增減的[注1],能夠確定的只是 i 會在這個語句結(jié)束前完成自增減

還有一點(diǎn),C 語言規(guī)定了各個運(yùn)算符的優(yōu)先級和結(jié)合性,你能夠據(jù)此判斷復(fù)合表達(dá)式中子表達(dá)式的運(yùn)算順序。那么對于你的這個例子,你能確定 (i++)+(i--) 肯定會在?+(i--) 前先算。 但是?C 語言并沒有規(guī)定運(yùn)算符運(yùn)算時其操作數(shù)的求值順序[注2]。也就是說其中這些 i ++、i -- 具體是何時求值的也是無法確定的

結(jié)合上述兩點(diǎn),根本不能確定在運(yùn)算時這些 i 都是什么值,事實(shí)上這個大表達(dá)式得出 36、37、38 什么的都有可能。


所以如果你問“為啥結(jié)果輸出是37?”,我只能說“不知道”。誰知道你的編譯器是在哪里把 i 自增的,又在哪里把 i 自減了...... ?這個表達(dá)式在不同的平臺上,用不同的編譯器可能就會得出不同的結(jié)果。


可以說你的這個表達(dá)式寫錯了。雖然這么寫符合語法,但這竟然能得出不同的值,難道不應(yīng)該算是寫錯了嗎!

你不應(yīng)該像這樣將自增減表達(dá)式連續(xù)用在一個對象上。

事實(shí)上對于寫復(fù)合表達(dá)式一般建議:如果其中有表達(dá)式改變了一個操作數(shù)的值,那就不要在這個復(fù)合表達(dá)式中再次使用這個操作數(shù)。除非你能確定“改變值”和“使用值”的先后順序。


以上是解答。

注1:前面說 C 語言并沒有具體規(guī)定何時自增減,其實(shí) C 語言對此還是有一些規(guī)定的,這涉及到“序列點(diǎn)”的概念。具體請參考我在老問答區(qū)的一個回答:http://idcbgp.cn/qadetail/87888

在表達(dá)式中有很多地方會成為“序列點(diǎn)”,我不具體展開說了,具體你這句代碼,序列點(diǎn)是語句結(jié)束時。

注2:在新的 C11 標(biāo)準(zhǔn)中,增加了幾條對操作數(shù)求值順序的規(guī)定,不過不影響你這個代碼的結(jié)果。

查看完整回答
1 反對 回復(fù) 2017-06-25
?
程Glory

TA貢獻(xiàn)19條經(jīng)驗(yàn) 獲得超6個贊

說一下個人的理解:(i++)先使用后自增,所以=12;當(dāng)執(zhí)行(i--)時,前面的(i++)已經(jīng)完成自增操作,所以=13;當(dāng)再次執(zhí)行(i++)時,前面的(i--)已經(jīng)完成自減操作,所以=12,綜上所述 12+13+12=37。不知道這樣理解對不對,建議你多看些自增自減的相關(guān)知識。

查看完整回答
反對 回復(fù) 2017-06-25
?
望遠(yuǎn)

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

12+13+12=37,另外不要寫這種可讀性差的代碼,理解前置和后置++,--運(yùn)算的差別就行。這種方式可能也就考試看重吧...滑稽臉

查看完整回答
1 反對 回復(fù) 2017-06-25
  • 1 回答
  • 1 關(guān)注
  • 2442 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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