C语言中单目运算符的结合方向是,C语言运算符的结合性
滿意答案
dtexoy
2014.03.14
采納率:48%????等級:9
已幫助:113人
結合性是規定運算符與運算數組合成表達式的結合方向。因為運算符是有優先級別的,表達式的運算應該是先按運算符的優先級由高到低的順序,結合運算數進行計算,當遇到同級別運算符或者是符號一樣但運算目數不同時,就要用到運算符的結合性。
例如:X=-B+C 或 X=A-B+C與X=A-B*C兩個表達式計算時是這樣的
對于X=-B+C,表達式運算時是這樣的,先數據棧讀入X,符號棧讀入=(賦值運算符),因為=是雙目運算符,還要讀入數據,所以繼續向后讀表達式;又讀到-號,不是數據,而且-號的運算級別高于=號,所以-號進入符號棧,繼續向后讀表達式,讀到數據B進入數據棧,這時候-B就符合負號運算符的自右向左結合的單目運算,就進行求值運算,符號棧中-號出棧,與數據棧中B結合成-B,-B就變為一個新的運算數據進入數據棧;后面繼續讀入+號,它是雙目運算符后面還要讀入一個運算數據,C就讀入了數據棧,后面沒有運算符再讀入,表達式結束,那么就進行符號棧+號和數據棧中C和-B的值相加,將結果存入數據棧中,符號棧中+出棧;符號棧中還有=號,它和數據棧中的結果與X形成賦值的自右向左雙目結合運算,表達式的結果就此運算完畢。
對于X=A-B+C與X=A-B*C兩個表達式計算時,前面X=A-B過程是相同的,只是后面,由于*號比+號的運算級別高,所以表達式X=A-B*C中要先算B*C的結果,在一步一步回退進行A-和X=的運算。而表達式X=A-B+C中+號與-同級別,所以當滿足運算條件時就先進行A-B運算,然后進行+C和X=的運算。
不知道以上的說明,是否能讓你明白C語言中運算符結合性和表達式求值的過程。
00分享舉報
總結
以上是生活随笔為你收集整理的C语言中单目运算符的结合方向是,C语言运算符的结合性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言 sizeof size_t,C/
- 下一篇: c语言保存图片image,iOS 保存图