當前位置:首頁 » 編程語言 » c語言運算符結合性的意思
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言運算符結合性的意思

發布時間: 2022-04-25 09:01:56

A. c語言中:和!是什麼意思,怎麼運用在編程中

?:的意思是條件運算符,使用的格式如下(條件)?A:B,如果條件成立,表達式的值就是A,否則是B。

!的意思是用來取非運算的,!true的結果就是 false !false 的結果是 true。

寫程序中,?:用的比較少,!主要用在條件判斷中。

比如

int a=9,b=8;

a>b?a=8:b=9;//就是這句

相當於if語句,問號前面的表達式為真的時候執行a=8,否則b=9。

(1)c語言運算符結合性的意思擴展閱讀:

結合性:C語言中各運算符的結合性分為兩種,即左結合性(自左至右)和右結合性(自右至左)。例如算術運算符的結合性是自左至右,即先左後右。

如有表達式x-y+z 則y 應先與「-」號結合,執行x-y 運算,再執行+z 的運算。這種自左至右的結合 方向就稱為「左結合性」。而自右至左的結合方向稱為「右結合性」。最典型的右結合 性運算符是賦值運算符。

如x=y=z,由於「=」的右結合性,應先執行y=z 再執行x=(y=z)運算。C語言運算符中有不少為右結合性,應注意區別,以避免理解錯誤。

B. c語言中,!(--x)什麼意思

C語言運算符,括弧裡面(---x)表示x的值減去1,相當於「x」變為「x-1」,括弧外面「!」表示取反(非0數變為0,0變為1)。

除了常見的三大類,算術運算符、關系運算符與邏輯運算符之外,還有一些用於完成特殊任務的運算符,比如位運算符。



(2)c語言運算符結合性的意思擴展閱讀


優先順序,C語言中,運算符的運算優先順序共分為15 級。1 級最高,15 級最低。 在表達式中,優先順序較高的先於優先順序較低的進行運算。而在一個運算量兩側的運算符 優先順序相同時,則按運算符的結合性所規定的結合方向處理。

結合性:C語言中各運算符的結合性分為兩種,即左結合性(自左至右)和右結合性(自右至左)。例如算術運算符的結合性是自左至右,即先左後右。如有表達式x-y+z 則y 應先與「-」號結合,執行x-y 運算,然後再執行+z 的運算。這種自左至右的結合 方向就稱為「左結合性」。

而自右至左的結合方向稱為「右結合性」。最典型的右結合 性運算符是賦值運算符。如x=y=z,由於「=」的右結合性,應先執行y=z 再執行x=(y=z)運算。C語言運算符中有不少為右結合性,應注意區別,以避免理解錯誤。

優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。所有的優先順序中,只有三個優先順序是從右至左結合的,它們是單目運算符、條件運算符、賦值運算符。其它的都是從左至右結合。

具有最高優先順序的其實並不算是真正的運算符,它們算是一類特殊的操作。()是與函數相關,[]與數組相關,而->及.是取結構成員。

其次是單目運算符,所有的單目運算符具有相同的優先順序,因此在我認為的 真正的運算符中它們具有最高的優先順序,又由於它們都是從右至左結合的,因此*p++與*(p++)等效是毫無疑問的。

另外在C語言里,沒有前置後置之分,因為++ -- 是右結合所以右側優先運算,表現為 "操作數後置優先順序比較高" 的假象,前置和後置的區分是因為運算符重載而後加入C++的

接下來是算術運算符,*、/、%的優先順序當然比+、-高了。

C. C語言 運算符 的結合性 怎麼理解求舉例子詳細解答!!

關於C語言運算符的結合性內容還是比較多的,可以分享給你幾個鏈接,裡面對這個問題講的還是比較清楚的,也有相應的實例,如下:
http://blog.chinaunix.net/uid-1924596-id-3049989.html
http://wenku..com/link?url=_9GNaTgaQPf_
希望能幫到你。

D. C語言運算符的結合性

結合性是規定運算符與運算數組合成表達式的結合方向。因為運算符是有優先順序別的,表達式的運算應該是先按運算符的優先順序由高到低的順序,結合運算數進行計算,當遇到同級別運算符或者是符號一樣但運算目數不同時,就要用到運算符的結合性。
例如: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語言中運算符結合性和表達式求值的過程。

E. c語言運算符結合性

c語言中右結合的運算符有:
(1)!邏輯非運算符;~按位取反運算符;++前綴增量運算符;--前綴減量運算符;+正號運算符;-負號運算符;(類型)類型轉換運算符;*指針運算符;&地址運算符;sizeof長度運算符
(2)?
:條件運算符
(3)=、
+=、
-=、
*=、
/=、
%=、
&=、
^=、
|=、
<<=、
>>=賦值運算符

F. C語言中的結合性是怎麼回事

簡單說就是,從表達式右邊開始執行;

只有同優先順序的運算符才具有結合性「自左至右」或者「自右自左」一說。

exp(不同優先順序運算符,依據優先順序高低進行運算):
int a = 1, b =10, c = 30;
int a = a * b + c;
因為 * 比 + 的運算符優先順序高,所以
先計算a * b (先計算左邊,未考慮結合性),在計算 10 + c
結果是 a = 300

exp(同優先順序運算符依據結合性進行運算):
int a, b = 1, c = 8;
a = b = c;

賦值運算符其結合性即為自右向左,即 a = ( b = c), 其結果是 b = 8, a = 8;
(錯誤答案:自左向右進行結合的話a = 1)

G. C語言中的「右結合」是什麼意思

舉個例子

a=b+c+d

=是右結合的,所以先計算(b+c+d),然後再賦值給a

+是左結合的,所以先計算(b+c),然後再計算(b+c)+d

C語言中具有右結合性的運算符包括所在單目運算符以及賦值運算符(=)和條件運算符。其它都是左結合性。

(7)c語言運算符結合性的意思擴展閱讀:

c語言中的左結合右結合

a<b<c中的<是左結合的,也就是從左向右計算的,所以23<59<2的值為1,而23<59<0的值為0;

但是=是右結合的,如果一個表達式中出現多個=號,不是從左到右計算而是從右到左計算,例如 total=total_minute=hour*60+minute,計算的順序是先算hour*60+minute,得到一個結果,然後算右邊的等號,就是把計算結果賦給變數total_minute,在算左邊的等號,即把這個值賦給變數total。

H. 有關C語言中運算符的結合性是什麼意思啊

左結合++、--運算優先順序最高,先進行變數的加(減)1運算,在進行剩餘運算
右結合++、--運算優先順序最低,最後對變數進行加(減)1運算

看下面的例子:
int a,b,c=1;
a=c++;/*先運算a=c,再運行c=c+1,最終結果:a=1,c=2*/
b=++c;/*先運算c=c+1,再運行b=c,最終結果:b=3,c=3*/

I. 如何理解C語言的左結合 和右結合性

指的是程序在計算時的計算順序,比如算 1+2+3+4
左結合性:
1+2+3+4 =
3+3+4
6+4
10
而右結合性是相反的。
當然計算的順序跟運算符號的優先順序有關,先優先順序再考慮結合性。