❶ c語言優先順序是什麼
C語言的運算符包括單目運算符、雙目運算符、三目運算符,優先順序如下:
第1優先順序:各種括弧,如()、[]等、成員運算符。
第2優先順序:所有單目運算符,如++、–指穗、!、~等。
第3優先順序:乘法運算符*、除法運算符/、求余運算符%。
第4優先順序:加法運算符+、減法運算符-。
第5優先順序:移位運算符<<、>>。
第6優先順序:大於運算符>、大於等於運叢寬算符>=、小於運算符<、小於等於運算符<=。
第7優先順序:等於運算符==、不等於運算符!=。
第8優先順序:按位與運算符&。
第9優先順序:按位異或運算符^。
第10優先順序:按位或運算符|。
第11優先順序:邏輯與運算符&&。
第12優先順序:邏唯鄭卜輯或運算符||。
第13優先順序:三目條件運算符?。
第14優先順序:各種賦值運算符,如=、+=、-=、*=、/=等。
第15優先順序:逗號運算。
❷ 計算機C語言中邏輯運算符「與」「或」「非」優先順序是怎樣的
非的優先順序最高(它是一個單目操作符)與的優先順序次之或的優先順序,最低單目操作符的優先順序最高。
1)&&:當且僅當兩個運算量的值都為"真"時,運算結果為"真",否則為"假"。
2) || :當且僅當兩個運算量的值都為"假"時,運算結果為"假",否則為"真"。
3) ! :當運算量的值為"真"時,運算結果為"假";當運算量的值為"假"時,運算結果為"真"。
(2)c語言邏輯關系的優先順序擴展閱讀:
優先順序:
優先順序與求值順序無關。如a+b && b*c,雖然*優先順序最高,但這個表達式求值順序是從左到右。
優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。
相同優先順序中,按結合性進行結合。大多數運算符結合性是從左到右,只有三個優先順序是從右至左結合的,它們是單目運算符、條件運算符、賦值運算符。
❸ C語言提供3種邏輯運算符,按優先順序高低它們分別是
C語言提供三種邏輯運算符,按優先順序高低它們分別是:邏輯非(!),邏輯與(&&)、邏輯或(||)。
運算規則:
&&:當且僅當兩個運算量的值都為「真」時,運算結果為「真」,否則為「假」。
|| :當且僅當兩個運算量的值都為「假」時,運算結果為「"假」,否則為「真」。
! :當運算量的值為「真」時,運算結果為「假」;當運算量的值為「假」時,運算結果為「真」。
例如:假定x=5,則(x>=0) && (x<10)的值為「真」,(x<-1) || (x>5)的值為「假」。
(3)c語言邏輯關系的優先順序擴展閱讀
C語言中運算符分為四類:算數運算符、關系運算符、邏輯運算符、位運算符。
算數運算符(9):+ - * / % ++ --
關系運算符(6):== != > >= < <=
邏輯運算符(6):&& || ! ^ & |
位運算符(7):& | ~ ^ >> << >>>;
1級是特殊運算符:括弧()
2級是單目運算符:++,-- 從右向左運算,只需要一個運算對象;
3、4級算數運算符:+ - * /
6、7級關系運算符:== != > >= < <=
11、12級邏輯運算符:&& || ! ^ & |
3~12級是雙目運算符:從左向右,需要兩個運算對象
13級是三目運算符:需要三個運算對象
14級是賦值運算符:=
❹ C語言提供6種關系運算符,按優先順序高低它們分別是
C語言提供6種關系運算符,按優先順序高低它們分別是:<、<=、 >、>=、==、 !=。
以下4種優先順序相同(高)①<②<=③>④>=;以下兩種優先順序相同(低)⑤==⑥!=;
原則:先高後低,同級左結合(即從左到右)。
關系運算符都是雙目運算符,其結合性均為左結合。關系運算符的優先順序低於算術運算符,高於賦值運算符。**在六個關系運算符中,<、<=、>、>=的優先順序相同,高於==和!=,==和!=的優先順序相同。
在C語言中,有的運算符有兩個操作數,例如10+20,10和20都是操作數,+是運算符。我們將這樣的運算符稱為雙目運算符。同理,將有一個操作數的運算符稱為單目運算符,將有三個操作數的運算符稱為三目運算符。
常見的雙目運算符有+、-、*、/等,單目運算符有++、--等,三目運算符只有一個,就是?:。
(4)c語言邏輯關系的優先順序擴展閱讀:
C語言中的符號分為10類:算術運算符、關系運算符、邏輯運算符、位操作運算符、賦值運算符、條件運算符、逗號運算符、指針運算符、求位元組數運算符和特殊運算符。
當一個運算對象兩側的運算符優先順序別相同時,則按運算符的結合性來確定表達式的運算順序。關於結合性的概念在其他高級語言中是沒有的,這是C語言的特點之一。
❺ c語言運算符的優先順序順序
c語言運算符優先順序從高到低的順序依次如下:
優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。表達式的結合次序取決於表達式中各種運算符的優先順序。優先順序高的運算符先結合,優先順序低的運算符後結合,同一行中的運算符的優先順序相同。
不同類型的運算符之間也有相應的優先順序順序:
一個表達式中既可以包括相同類型的運算符,也可以包括不同類型的運算符或者函數。當多種運算符出現在同一個表達式中時,應該先按照不同類型運算符間的優先順序進行運算。
各種運算符間的優先順序如下:
數值運算符、字元串運算符、關系運算符、邏輯運算符。可以用括弧改變優先順序順序,使得括弧內的運算優先於括弧外的運算。對於多重括弧,總是由內到外強製表達式的某些部分優先運行。括弧內的運算總是最優先計算。
❻ c語言優先順序是什麼
C語言中運算符優先順序排序如下:
分為優先順序15級:
1、圓括弧【()】、下標運算符【[]】、分量運算符的指向結構體成員運算符【->】、結構體成員運算符【.】;
2、邏輯非運算符【!】、按位取反運算符【~】、自增自減運算符【++】【 --】、負號運算符【-】、類型轉換運算符【(類型)】、指針運算符和取地址運算符【*】【&】、長度運算符【sizeof】;
3、乘法運算符【*】、除法運算符【/】、取余運算符【%】;
4、加法運算符【+】、減法運算符【-】;
5、左移動運算符【<<】、右移動運算符【>>】;
6、關系運算符【< 】【>】【<=】【 >= 】;
7、等於運算符【==】、不等於運算符【!=】;
8、按位與運算符【&】;
9、按位異或運算符【^】;
10、按位或運算符【|】;
11、邏輯與運算符【&&】;
12、邏輯或運算符【||】;
13、條件運算符【?:】;
14、賦值運算符【=】【/=】【*=】【%=】【+=】【-=】【<<=】【>>=】【&=】【^=】【|=】;
15、逗號運算符【,】。
注意:
每種同類型的運算符都有內部的運算符優先順序,不同類型的運算符之間也有相應的優先順序順序。一個表達式中既可以包括相同類型的運算符,也可以包括不同類型的運算符或者函數。當多種運算符出現在同一個表達式中時,應該先按照不同類型運算符間的優先順序進行運算。
各種運算符間的優先順序如下:數值運算符、字元串運算符、關系運算符、邏輯運算符。可以用括弧改變優先順序順序,使得括弧內的運算優先於括弧外的運算。對於多重括弧,總是由內到外強製表達式的某些部分優先運行。括弧內的運算總是最優先計算。
❼ c語言優先順序是什麼
c語言優先順序是:每種同類型的運算符都有內部的運算符優先順序,不同類型的運算符之間也有相應的優先順序順序。一個表達式中既可以包括相同類型的運算符,也可以包括不同類型的運算符或者函數。
當多種運算符出現在同一個表達式中時,應該先按照不同類型運算符間的優先順序進行運算。
各種運算符間的優先順序如下:數值運算符、字元串運算符、關系運算符、邏輯運算符。可以用括弧改變優先順序順序,使得括弧內的運算優先於括弧外的運算。對於多重括弧,總是由內到外強製表達式的某些部分優先運行。括弧內的運算總是最優先計算。
優先順序結合性:
當一個運算對象兩側的運算符優先順序別相同時,則按運算符的結合性來確定表達式的運算順序。關於結合性的概念在其他高級語言中是沒有的,這是C語言的特點之一。在標准C語言的文檔里,對操作符的結合性並沒有做出非常清楚的解釋。
C語言也將34種運算符規定了不同的結合性。大多數運算符結合方向是「自左至右」,即:先左後右,也叫「左結合性」
例如 a-b + c,表達式中有-和+兩種運算符,且優先順序相同,按先左後右結合方向,先圍繞減號結合,執行a-b的運算,再圍繞加號結合,完成運算(a-b) + c。除了左結合性外,C 語言有三類運算符的結合方向是從右至左,也叫「右結合性」。
❽ 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語言中,只有4個運算符規定了運算方向,它們是&&、| |、條件運算符及賦值運算符。
&&、| |都是先計算左邊表達式的值,當左邊表達式的值能確定整個表達式的值時,就不再計算右邊表達式的值。如 a = 0 && b; &&運算符的左邊位0,則右邊表達式b就不再判斷。
在條件運算符中。如a?b:c;先判斷a的值,再根據a的值對b或c之中的一個進行求值。
賦值表達式則規定先對右邊的表達式求值,因此使 a = b = c = 6;成為可能。
口訣注釋
優先順序等級口訣
圓方括弧、箭頭一句號, 自增自減非反負、針強地址長度,
乘除,加減,再移位,
小等大等、等等不等,
八位與,七位異,六位或,五與,四或,三疑,二賦,一真逗。
其中「,」號為一個等級分段。
優先順序等級注釋
「圓方括弧、箭頭一句號」指的是第15級的運算符。其中圓方括弧很明顯「()、[]」,箭頭 指的是指向結構體成員運算符「->」,句號 指的是結構體成員運算符「.」 ;
「自增自減非反負、針強地址長度」指的是第14級的運算符。其中 非 指的是邏輯運算符「!」,反 指的是按位取反運算符「~」,負 指的是負號運算符「-」,針 指的是指針運算符「*」,強 指的是強制類型轉換運算符,地址 指的是地址運算符「&」,長度 指的是長度運算符「sizeof 」;
「乘除,加減,再移位」移位指的是左移運算符「<<」和右移運算符「>>」,其中除法還包括了 取余運算符「%」;
「小等大等、等等不等」 指的是第10級到第9級的運算符:<、<=、>和>=,等等指的是等於運算符==,不等指的是不等於運算符!=
「八位與,七位異,六位或」其中 八位與 指的是第8級的 按位與 運算符「&」,七位異 指的是第7級的按位異或運算符「^」,六位或 指的是第6級的按位或運算符「|」;
「五與,四或」指的是第5級、第4級的邏輯與運算符「&&」和邏輯或運算符「||」;
「三疑,二賦,一真逗」指的是第3級到第1級的運算符。其中,三疑指的是條件運算符「?:」 (三有雙重含義:即指優先順序別是三,它的運算符類型也是三目,疑也取「?」之意),二賦 指的是賦值運算符=、+=、-=、*=、/=、%=、>>=、<<=、&=、^=和|= ,一真逗 指的是第1級的「,」運算符,真字只是為了語句需要罷了。
由於C語言的運算符優先順序與C++的不完全一樣(主要是增加了幾個運算符),所以這個口訣不能完全實用於C++.但是應該能夠兼容,大家可以比較一下他們的區別應該就能夠很快掌握C++的優先順序的!
應用舉例
1、賦值運算符:a=5;
a=b=0;
第一個賦值語句把5賦給變數a;第二個賦值語句的意思是把0同時賦值給兩個變數。這是因為賦值語句是從右向左運算的,也就是說從右端開始計算,先b=0,然後a=b。
2、復合賦值運算符:a=1;a+=3;
上面第二個賦值語句等價於a=a+3;即a=4。
3、算術運算符:Area=Height*Width;num=num1+num2/num3-num4;
第一個賦值語句Height和Width相乘結果賦給變數Area;第二個賦值語句先完成num2與num3的整除運算,然後與num1相加,再減去num4,結果賦給num。運算符運算順序先算乘除再算加減。單目正和單目負最先運算。
4、邏輯運算符:a=1,b=1;
a||b-1;
因為a=1為真值,所以不管b-1是不是真值,總的表達式一定為真值,這時後面的表達式就不會再計算了。
5、關系運算符:if(a>0)...
如果a>0,則執行if語句中的內容,否則退出。
6、條件運算符:a=(b>0)?b:-b;
當b>0時,a=b;當b不大於0時,a=-b;其實上面的意思就是把b的絕對值賦值給a。
7、逗號運算符:b=2,c=7,d=5;
a=(++b,c--,d+3);
有三個表達式,用逗號分開,所以最終的值應該是最後一個表達式的值,也就是d+3=8,所以a=8。
8、位邏輯運算符
包括:1。&位與符 2。|位或符 3。^位異或符 4。~位取反符以操作數12為例。位運算符將數字12視為1100。位運算符將操作數視為位而不是數值。數值可以是任意進制的:十進制、八進制或十六進制。位運算符則將操作數轉化為二進制,並相應地返回1或0。位運算符將數字視為二進制值,並按位進行相應運算,運算完成後再重新轉換為數字。例如:表達式10&15表示(1010 & 1111),它將返回表示1010的值10。因為真真得真,或者是11得1,同位全是1結果也是1表達式10|15表示(1010 | 1111),它將返回表示1111的值15。假假得假。全零得零。表達式10^15表示(1010 ^ 1111), 它將返回表示0101的值5。此時是同性相斥,相同的就為假。表達式~10表示(~1010),它將返回表示0101的值 -11。此號好理解,按位取反。