① c語言運算符優先順序順序
C語言運算符優先順序順序如下所示:
(1)c語言優先順序別結合方向表擴展閱讀
一個表達式可以包含多個運算符。在這種情況下,運算符的優先順序決定表達式的哪部分被處理為每個運算符的操作數。例如,按照運算規則,表達式中*、/、以及 % 的優先順序比 + 和 - 高。如下列表達式:
a - b * c
相當於 a-(b*c)。如果想讓操作數以不同的方式組合在一起,則必須使用括弧:
(a - b) * c
如果一個表達式中的兩個操作數具有相同的優先順序,那麼它們的結合律(associativity)決定它們的組合方式是從左到右或是從右到左。例如,算術運算符和操作數的組合方式是從左到右,賦值運算符則是從右到左。
② C語言中優先順序和結合性 例如:*p++
*p++,由於++和*的優先順序相同,結合方向為自右至左。所以確實*p++等價於*(p++),而p++其實取值的時候還是取p的,是用過之後才能+1。所以*(p++)就是先執行p++得到p,然後執行*p,得到p指向的值,等這個運算結束了才能+1。你的那個理解應該是對於*(++p)的!
③ C語言中,求余運算與乘除法運算,哪個的優先順序高
C語言中,求余運算與乘除法運算,優先順序一樣高。
C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。盡管C語言提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。
(3)c語言優先順序別結合方向表擴展閱讀:
當前階段,在編程領域中,C語言的運用非常之多,它兼顧了高級語言和匯編語言的優點,相較於其它編程語言具有較大優勢。計算機系統設計以及應用程序編寫是C語言應用的兩大領域。同時,C語言的普適較強,在許多計算機操作系統中都能夠得到適用,且效率顯著。
馮.諾依曼在1945年提出了現代計算機的若干思想,被後人稱為馮.諾依曼思想,這是計算機發展史上的里程碑。自1945 年至今大多採用其結構,因此馮.諾依曼被稱為計算機之父。他的體系結構計算機由運算器、控制器、存儲器、輸入設備、輸出設備五大部件構成。 C語言擁有一套完整的理論體系經過了漫長的發展歷史,在編程語言中具有舉足輕重的地位。
④ c語言中運算符的結合方向什麼時候從左至右,什麼時候從右至左
左結合性:自左至右。
右結合性:自右至左。
一個運算量兩側的運算符優先順序相同時,按運算符的結合性所規定的結合方向處理。C語言中各運算符的結合性分為兩種,即左結合性和右結合性。
如,算術運算符的結合性是自左至右,即先左後右。如有表達式x-y+z則y應先與「-」號結合,執行x-y運算,然後再執行+z的運算。
而最典型的右結合性運算符是賦值運算符,如x=y=z,由於「=」的右結合性,應先執行y=z,再執行x=(y=z)運算。
(4)c語言優先順序別結合方向表擴展閱讀
C語言中的運算符
(1)算術運算符(+,-,*,/,%,++,--)。
(2) 關系運算符(<, >, <=, >=, ==, ![KG-*8]=) 。
(3) 邏輯運算符(!, &&, ||) 。
(4) 位運算符(<<, >>, ~, |, ^, &) 。
(5)賦值運算符(=,及其雙目運算符的擴展賦值運算符)。
(6)條件運算符(?:)。
(7)逗號運算符(,)。
(8) 指針運算符(*, &) 。
(9)求位元組數運算符(sizeof)。
(10)強制類型轉換運算符((類型))。
(11) 分量運算符(·, ->) 。
(12)下標運算符([])。
(13)圓括弧運算符(())。
⑤ c語言中運算符有哪幾種,優先順序順序是怎樣
C語言中,運算符除了常見的三大類,算術運算符、關系運算符與邏輯運算符之外,還有一些用於完成特殊任務的運算符。
運算符的運算優先順序共分為15 級,1 級最高,15 級最低。 在表達式中,優先順序較高的先於優先順序較低的進行運算。而在一個運算量兩側的運算符 優先順序相同時,則按運算符的結合性所規定的結合方向處理。
一級運算符:標識,常量,字元串文字量,優先順序提升表達式最優先執行。
二級運算符:數組下標運算(expression)、函數調用(argument-expression-list)、成員訪問(identifier、-> identifier)、後綴自增(i++)、後綴自減(i--)、復合初始化(initializer-list)。
三級運算符:前綴自增(++i)、前綴自減(--i)、單目轉型表式式(取地址& ,提領 * , 正號+ ,負號-、位反~ 邏輯否!)、求類型長度(sizeof unary-expression)。
四級運算符:強製表達式成為type-name指定的類型( type-name ) cast-expression。
五級運算符:「 * 」 乘法運算符。
六級運算符:「 + 」加法運算符。
七級運算符:<< 左移運算符;>> 右移運算符。
八級運算符:<、<=、>、>=關系運算符。
九級運算符:「 == 」等於運算符;「 != 」不等於運算符。
十級運算符:「 & 」按位與運算符。
十一級運算符:「 ∧ 」按位異或運算符。
十二級運算符:「 | 」按位或運算符。
十三級運算符:「&&」邏輯與運算符。
十四級運算符:「 || 」邏輯或運算符。
十五級運算符:? :條件運算符。
(5)c語言優先順序別結合方向表擴展閱讀
C語言中各運算符的結合性:
1、左結合性(自左至右):
例如算術運算符的結合性是自左至右,即先左後右。如有表達式x-y+z 則y 應先與「-」號結合,執行x-y 運算,然後再執行+z 的運算。這種自左至右的結合方向就稱為「左結合性」。
2、右結合性(自右至左)
自右至左的結合方向稱為「右結合性」。最典型的右結合 性運算符是賦值運算符。如x=y=z,由於「=」的右結合性,應先執行y=z 再執行x=(y=z)運算。C語言運算符中有不少為右結合性,應注意區別,以避免理解錯誤。
⑥ C語言中同等級運算的先後順序
同等級的運算符,先後順序按結合性來進行。下面的代碼有利於理解結合性。
inta,b=1,c=2;
a=b=c;
上面的代碼是先執行b=c呢?還是先執行a=b。如果按前者,a=結果為2,如果按後者,a的結果為1。所有的賦值符(包括復合賦值)都具有右結合性,就是在表達式中最右邊的操作最先執行,然後從右到左依次執行。這樣,c先賦值給b,然後b在賦值給a,最終a的值是2。
所有優先順序相同的操作符,它們的結合性也相同。這是必須如此的,否則結合性依然無法消除歧義,如果在計算表達式的值時需要考慮結合性,那麼最好把這個表達式一分為二或者使用括弧。
例:
a=b+c+d
=是右結合的,所以先計算(b+c+d),然後再賦值給a
+是左結合的,所以先計算(b+c),然後再計算(b+c)+d
在C語言中有少數運算符在C語言標准中是有規定表達式求值的順序的:
1:&& 和 || 規定從左到右求值,並且在能確定整個表達式的值的時候就會停止,也就是常說的短路。
2:條件表達式的求值順序是這樣規定的:
test ? exp1 : exp2;
條件測試部分test非零,表達式exp1被求值,否則表達式exp2被求值,並且保證exp1和exp2兩者之中只有一個被求值。
3:逗號運算符的求值順序是從左到右順序求值,並且整個表達式的值等於最後一個表達式的值,注意逗號','還可以作為函數參數的分隔符,變數定義的分隔符等,這時候表達式的求值順序是沒有規定的!
⑦ c語言運算符優先順序從高到低的順序依次為
c語言運算符優先順序從高到低的順序依次如下:
優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。表達式的結合次序取決於表達式中各種運算符的優先順序。優先順序高的運算符先結合,優先順序低的運算符後結合,同一行中的運算符的優先順序相同。
不同類型的運算符之間也有相應的優先順序順序。
一個表達式中既可以包括相同類型的運算符,也可以包括不同類型的運算符或者函數。當多種運算符出現在同一個表達式中時,應該先按照不同類型運算符間的優先順序進行運算。
各種運算符間的優先順序如下:數值運算符、字元串運算符、關系運算符、邏輯運算符。可以用括弧改變優先順序順序,使得括弧內的運算優先於括弧外的運算。對於多重括弧,總是由內到外強製表達式的某些部分優先運行。括弧內的運算總是最優先計算。
⑧ C語言 符號優先順序的排列順序
分為優先順序15級:
1、圓括弧【()】、下標運算符【[]】、分量運算符的指向結構體成員運算符【->】、結構體成員運算符【.】;
2、邏輯非運算符【!】、按位取反運算符【~】、自增自減運算符【++】【 --】、負號運算符【-】、類型轉換運算符【(類型)】、指針運算符和取地址運算符【*】【&】、長度運算符【sizeof】;
3、乘法運算符【*】、除法運算符【/】、取余運算符【%】;
4、加法運算符【+】、減法運算符【-】;
5、左移動運算符【<<】、右移動運算符【>>】;
6、關系運算符【< 】【>】【<=】【 >= 】;
7、等於運算符【==】、不等於運算符【!=】;
8、按位與運算符【&】;
9、按位異或運算符【^】;
10、按位或運算符【|】;
11、邏輯與運算符【&&】;
12、邏輯或運算符【||】;
13、條件運算符【?:】;
14、賦值運算符【=】【/=】【*=】【%=】【+=】【-=】【<<=】【>>=】【&=】【^=】【|=】;
15、逗號運算符【,】。
(8)c語言優先順序別結合方向表擴展閱讀:
C語言中各運算符的結合性:
1、左結合性(自左至右):
例如算術運算符的結合性是自左至右,即先左後右。如有表達式x-y+z 則y 應先與「-」號結合,執行x-y 運算,然後再執行+z 的運算。這種自左至右的結合方向就稱為「左結合性」。
2、右結合性(自右至左)
自右至左的結合方向稱為「右結合性」。最典型的右結合 性運算符是賦值運算符。如x=y=z,由於「=」的右結合性,應先執行y=z 再執行x=(y=z)運算。C語言運算符中有不少為右結合性,應注意區別,以避免理解錯誤。
⑨ C語言的運算符的優先順序是什麼
1、最高級:出現同級別運算符時的結合方向是從左往右(下面級別沒寫結合順序時,默認是從左往右)。
( )圓括弧
[ ]下標運算符號
->指向結構體成員運算符
.結構體成員運算符
⑩ c語言優先順序是什麼
c語言優先順序是:每種同類型的運算符都有內部的運算符優先順序,不同類型的運算符之間也有相應的優先順序順序。一個表達式中既可以包括相同類型的運算符,也可以包括不同類型的運算符或者函數。
當多種運算符出現在同一個表達式中時,應該先按照不同類型運算符間的優先順序進行運算。
各種運算符間的優先順序如下:數值運算符、字元串運算符、關系運算符、邏輯運算符。可以用括弧改變優先順序順序,使得括弧內的運算優先於括弧外的運算。對於多重括弧,總是由內到外強製表達式的某些部分優先運行。括弧內的運算總是最優先計算。
優先順序結合性:
當一個運算對象兩側的運算符優先順序別相同時,則按運算符的結合性來確定表達式的運算順序。關於結合性的概念在其他高級語言中是沒有的,這是C語言的特點之一。在標准C語言的文檔里,對操作符的結合性並沒有做出非常清楚的解釋。
C語言也將34種運算符規定了不同的結合性。大多數運算符結合方向是「自左至右」,即:先左後右,也叫「左結合性」
例如 a-b + c,表達式中有-和+兩種運算符,且優先順序相同,按先左後右結合方向,先圍繞減號結合,執行a-b的運算,再圍繞加號結合,完成運算(a-b) + c。除了左結合性外,C 語言有三類運算符的結合方向是從右至左,也叫「右結合性」
以上內容參考:網路-運算符優先順序