嫒美直播免费版app下载-嫒美直播永久免费版下载-嫒美直播最新下载安装

當前位置:首頁 > 資格考試 > 正文

C語言中綜合規(guī)律從右至左到從左至右有什么區(qū)別

c語言中運算符的結(jié)合方向什么時候從左至右,什么時候從右至左

左結(jié)合性:自左至右。

右結(jié)合性:自右至左。

一個運算量兩側(cè)的運算符優(yōu)先級相同時,按運算符的結(jié)合性所規(guī)定的結(jié)合方向處理。C語言中各運算符的結(jié)合性分為兩種,即左結(jié)合性和右結(jié)合性。

如,算術(shù)運算符的結(jié)合性是自左至右,即先左后右。如有表達式x-y+z則y應(yīng)先與“-”號結(jié)合,執(zhí)行x-y運算,然后再執(zhí)行+z的運算。

而最典型的右結(jié)合性運算符是賦值運算符,如x=y=z,由于“=”的右結(jié)合性,應(yīng)先執(zhí)行y=z,再執(zhí)行x=(y=z)運算。



擴展資料

C語言中的運算符

(1)算術(shù)運算符(+,-,*,/,%,++,--)。

(2) 關(guān)系運算符(<, >, <=, >=, ==, ![KG-*8]=) 。

(3) 邏輯運算符(!, &&, ||) 。

(4) 位運算符(<<, >>, ~, |, ^, &) 。

(5)賦值運算符(=,及其雙目運算符的擴展賦值運算符)。

(6)條件運算符(?:)。

(7)逗號運算符(,)。

(8) 指針運算符(*, &) 。

(9)求字節(jié)數(shù)運算符(sizeof)。

(10)強制類型轉(zhuǎn)換運算符((類型))。

(11) 分量運算符(·, ->) 。

(12)下標運算符([])。

(13)圓括號運算符(())。

C語言中運算順序“至左向右”和“至右向左”是怎么回事?

不同的函數(shù) 內(nèi)部的執(zhí)行 順序不一樣 就像先乘除后加減 一樣 ! 至左向右 就是不管表達式是怎么樣的 按照從左到右 計算機順序執(zhí)行 同理至右向左

C語言中結(jié)合性自右向左怎么理解?

C語言中結(jié)合性自右向左,簡單說就是,從表達式右邊開始執(zhí)行;

1、只有同優(yōu)先級的運算符才具有結(jié)合性“自左至右”或者“自右自左”一說。

2、exp(不同優(yōu)先級運算符,依據(jù)優(yōu)先級高低進行運算):

int a = 1, b =10, c = 30;

int a = a * b + c;

因為 * 比 + 的運算符優(yōu)先級高,所以先計算a * b (先計算左邊,未考慮結(jié)合性),在計算 10 + c,結(jié)果是 a = 300

3、c++標準對子表達式進行求值的次序沒有做出規(guī)定,由各個c++編譯器廠商自己決定(參見Bjarne Stroustrup所著的C++程序設(shè)計語言)。因此,開發(fā)人員不要編寫依賴子表達式執(zhí)行次序的代碼,因為為了實現(xiàn)同樣的功能,完全可以采用更為清晰的代碼。

例如,語句int c=(a++)+(a++)+(a++);中給c賦值的表達式(a++)+(a++)+(a++)的求值。編寫的目的是為了提高效率。

4、如果確實想鉆研,那么根據(jù)Bjarne Stroustrup所說的“子表達式求值次序”,枚舉各種可能,就可以理解所有不同結(jié)果的編譯器行為。例如,上述語句int d=(++b)+(++b)+(++b);可以概念上表示為:int d=E1+E2+E3;(其中,E1,E2,E3是+運算符的同層次表達式,(E1+E2)和E3是+運算符的同層次表達式),其它同層次表達式可以同理)則其計算次序可以是:

1)E1(此時b=2)=>E2(此時b=3)=>E1+E2=b+b=6放入中間變量(此時b=3)=>E3

(此時b=4)=>d=10 對應(yīng)VC的結(jié)果

2)E1(此時b=2)=>E2(此時b=3)=>E3(此時b=4)=>E1+E2=b+b放入中間變量(此時b=4)=>d=12 對應(yīng)BC的結(jié)果;

c語言中條件運算 結(jié)合方向 從右到左 什么意思

在標準C語言的文檔里,對操作符的結(jié)合性并沒有作出非常清楚的解釋。一個滿分的回答是:它是仲裁者,在幾個操作符具有相同的優(yōu)先級時決定先執(zhí)行哪一個。 每個操作符擁有某一級別的優(yōu)先級,同時也擁有左結(jié)合性或右結(jié)合性。優(yōu)先級決定一個不含括號的表達式中操作數(shù)之間的“緊密”程度。例如,在表達式a*b+c中,乘法運算的優(yōu)先級高于加法運算符的優(yōu)先級,所以先執(zhí)行乘法a*b,而不是加法b+c。 但是,許多操作符的優(yōu)先級都是相同的。這時,操作符的結(jié)合性就開始發(fā)揮作用了。在表達式中如果有幾個優(yōu)先級相同的操作符,結(jié)合性就起仲裁的作用,由它決定哪個操作符先執(zhí)行。像下面這個表達式: int a,b=1,c=2; a=b=c;

C語言中結(jié)合性自右向左怎么理解

1、簡單說就是,從表達式右邊開始執(zhí)行; 只有同優(yōu)先級的運算符才具有結(jié)合性“自左至右”或者“自右自左”一說。 2、exp(不同優(yōu)先級運算符,依據(jù)優(yōu)先級高低進行運算): int a = 1, b =10, c = 30; int a = a * b + c; 因為 * 比 + 的運算符優(yōu)先級高,所以 先計算a * b (先計算左邊,未考慮結(jié)合性),在計算 10 + c 結(jié)果是 a = 300 exp(同優(yōu)先級運算符依據(jù)結(jié)合性進行運算): int a, b = 1, c = 8; a = b = c; 賦值運算符其結(jié)合性即為自右向左,即 a = ( b = c), 其結(jié)果是 b = 8, a = 8
展開全文閱讀