課程
/后端開發(fā)
/C
/C語言入門
a=3;a++=3;a=4.根據(jù)答案解析的運算順序,本式重新運算加減時,a(4)+b%a(1)-b/a(1)+a*b(12)-a++(3)=13.
2015-06-27
源自:C語言入門 3-4
正在回答
題目是:int a = 3; b = 4;計算a+b%a-b/a+a*b-a++該算式的運算結(jié)果以及運算后a的值.
我看了下你的想法,發(fā)現(xiàn)你在第一處a這里的想法是有問題的.其實你的想法也不算錯,在這里應(yīng)該算是C語言未定義的行為,在windows的VC編譯器和Linux的GCC編譯器對自增/減在同一個表達(dá)式中的處理方式不太一樣,你的想法與VC編譯器的處理方式差不多,然而本道題的答案傾向于GCC的處理方式.其實這里不用糾結(jié).這里我給出我的理解:按照運算符的優(yōu)先級可以將a+b%a-b/a+a*b-a++等價地改寫為3+1-1+12-3.為什么第一處a會是3而不是4呢,因為四則運算的結(jié)合性是從左往右,即先計算a,再計算a++.所以最后計算的結(jié)果是12.由于a++改變了a的值,所以a為4.但在之前的a還是初始值.不懂的可以追問我.
qq_飛行模式_0
273310244 回復(fù) qq_飛行模式_0
不要為你的無知找借口 回復(fù) qq_飛行模式_0
道凡生 提問者
沒有高手能回答嗎?
舉報
C語言入門視頻教程,帶你進(jìn)入編程世界的必修課-C語言
4 回答int a = 3; b = 4;計算a+b%(a+b)/a+a*b-b的順序
7 回答int a = 3; b = 4;計算a+b%(a+b)/a+a*b-b該算式的運算結(jié)果
3 回答int a = 3; b = 4;計算a+b%a-b/a+a*b-a++該算式的運算結(jié)果以及運算后a的值如果題目改成int a = 3; b = 4;計算a+b%a-b/a+a*b-(++a)答案是多少???
1 回答int a = 3; b = 4;計算a+b%(a+b)/a+a*b-b該算式的運算結(jié)果
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2015-06-28
題目是:int a = 3; b = 4;計算a+b%a-b/a+a*b-a++該算式的運算結(jié)果以及運算后a的值.
我看了下你的想法,發(fā)現(xiàn)你在第一處a這里的想法是有問題的.其實你的想法也不算錯,在這里應(yīng)該算是C語言未定義的行為,在windows的VC編譯器和Linux的GCC編譯器對自增/減在同一個表達(dá)式中的處理方式不太一樣,你的想法與VC編譯器的處理方式差不多,然而本道題的答案傾向于GCC的處理方式.其實這里不用糾結(jié).這里我給出我的理解:按照運算符的優(yōu)先級可以將a+b%a-b/a+a*b-a++等價地改寫為3+1-1+12-3.為什么第一處a會是3而不是4呢,因為四則運算的結(jié)合性是從左往右,即先計算a,再計算a++.所以最后計算的結(jié)果是12.由于a++改變了a的值,所以a為4.但在之前的a還是初始值.不懂的可以追問我.
2015-06-27
沒有高手能回答嗎?