c語言的運算符的優先順序
『壹』 c語言中運算符優先順序最小的是
優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。
所有的優先順序中,只有三個優先順序是從右至左結合的,它們是單目運算符、條件運算符、賦值運算符。其它的都是從左至右結合。
具有最高優先順序的其實並不算是真正的運算符,它們算是一類特殊的操作。()是與函數相關,[]與數組相關,而->及.是取結構成員。
其次是單目運算符,所有的單目運算符具有相同的優先順序,因此在我認為的 真正的運算符中它們具有最高的優先順序,又由於它們都是從右至左結合的,因此*p++與*(p++)等效是毫無疑問的
接下來是算術運算符,*、/、%的優先順序當然比+、-高了。
移位運算符緊隨其後。
其次的關系運算符中,< <= > >=要比 == !=高一個級別,不大好理解。
所有的邏輯操作符都具有不同的優先順序(單目運算符除外,!和~)
邏輯位操作符的"與"比"或"高,而"異或"則在它們之間。
跟在其後的&&比||高。
接下來的是條件運算符,賦值運算符及逗號運算符。
在C語言中,只有4個運算符規定了運算方向,它們是&&、| |、條件運算符及賦值運算符。
&&、| |都是先計算左邊表達式的值,當左邊表達式的值能確定整個表達式的值時,就不再計算右邊表達式的值。如 a = 0 && b; &&運算符的左邊位為0,則右邊表達式b就不再判斷。
在條件運算符中。如a?b:c;先判斷a的值,再根據a的值對b或c之中的一個進行求值。
賦值表達式則規定先對右邊的表達式求值,因此使 a = b = c = 6;成為可能。
『貳』 求C語言運算符的優先順序別
第一級四個:
()
[]
->
.
第二級八個:
!
~
++
--
-(求負數)
*(間接定址運算符)
&(取地址運算符)
sizeof()
第三級三個:
*(乘號)
/
%
第四級兩個:
+
-(減號)
第五級兩個:
<<
>>
第六級四個:
<
<=
>
>=
第七級兩個:
==
!=
第八級一個:
&(按位 與)
第九級一個:
^(按位 與或)
第十級一個:
|(按位 或)
第十一級一個:
&&(邏輯 與)
第十二級一個:
||(邏輯 或)
第十三級一個:
?:
第十四級十一個:
=
+=
-=
*=
/=
%=
&=
^=
|=
<<=
>>=
十五級一個:
,
就像數學上的加減乘除一樣,優先順序是用來劃分表達式中符號的優先執行順序的。
如:a+=b*c
因為*的優先順序排在+=之前,所以會先執行b*c,而不是先執行a+=b
。。。
『叄』 C語言運算符優先順序順序
C語言運算符優先順序順序如下所示:
(3)c語言的運算符的優先順序擴展閱讀
一個表達式可以包含多個運算符。在這種情況下,運算符的優先順序決定表達式的哪部分被處理為每個運算符的操作數。例如,按照運算規則,表達式中*、/、以及 % 的優先順序比 + 和 - 高。如下列表達式:
a - b * c
相當於 a-(b*c)。如果想讓操作數以不同的方式組合在一起,則必須使用括弧:
(a - b) * c
如果一個表達式中的兩個操作數具有相同的優先順序,那麼它們的結合律(associativity)決定它們的組合方式是從左到右或是從右到左。例如,算術運算符和操作數的組合方式是從左到右,賦值運算符則是從右到左。
『肆』 C語言中的邏輯運算符按優先順序別是
要了解c語言運算符優先順序高低就先從通常數學上運算優先順序高低說起。
通常,一個數學算式里如果有加減乘除和括弧,我們會先算括弧裡面的式子,再算括弧外面的乘除再然後才是加減。那麼這時候我們說括弧的優先順序比加減乘除的要高,所以我們就先計算括弧里的式子。然後是乘除,再然後才是加減。其中加減乘除就是運算符。所以運算符的高低決定了運算的先後順序。
同理。C語言中的運算優先順序和這一個樣,只要你把運算符的優先順序記住就可以了。
『伍』 c語言運算符優先順序從高到低的順序依次為
||一共有十五個優先順序:
1
()
[]
.
->
2
!
~
-(負號)
++
--
&(取變數地址)*
(type)(強制類型)
sizeof
3
*
/
%
4
+
-
5
>>
<<
6
>
>=
<
<=
7
==
!=
8
&
9
^
10
|
11
&&
12
||
13
?:
14
=
+=
-=
*=
/=
%=
|=
^=
&=
>>=
<<=
15
,
就著多吧
結合性:2
13
14
是從右至左
其他都是
從左至右
『陸』 C語言 怎麼判斷運算符的優先順序
|char
Precede(char
s1,char
s2)
{//判斷兩個運算符s1,s2的優先順序,
//若s1優先則返回>,若s2優先則返回<,若s1,s2相同則返回=
char
f;
switch(s2)
{
case
'+':
case
'-':
if(s1==')'||專s1=='#'||s1=='(')
f='<';
else
f='>';
break;
case
'*':
case
'/':
if(s1=='*'||s1=='/'||s1==')')
f='>';
else
f='<';
break;
case
'(':
if(s1==')')
{
printf("ERROR
1
!屬");
exit(ERROR);
}
else
f='<';
break;
case
')':
if(s1=='#')
{
printf("ERROR
2
!");
exit(ERROR);
}
else
{
if(s1=='(')
f='=';
else
f='>';
}
break;
case
'#':
if(s1=='(')
{
printf("ERROR
3
!");
exit(ERROR);
}
else
{
if(s1=='#')
f='=';
else
f='>';
}
break;
default
:
printf("ERROR
4
!");
exit(ERROR);
}
return
f;
}
『柒』 C語言的運算符的優先順序:邏輯運算符、條件運算符、賦值運算符、關系運算符、算術運算符。它們之間的優先順序
1、最高級:出現同級別運算符時的結合方向是從左往右(下面級別沒寫結合順序時,默認是從左往右)。
( )圓括弧
[ ]下標運算符號
->指向結構體成員運算符
.結構體成員運算符
『捌』 c語言中的運算符優先順序高低是什麼意思
運算符用於執行程序代碼運算,會針對一個以上操作數項目來進行運算。例如:2+3,其操作數是2和3,而運算符則是「+」。
運算符的優先順序是從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。表達式的結合次序取決於表達式中各種運算符的優先順序。優先順序高的運算符先結合,優先順序低的運算符後結合,同一行中的運算符的優先順序相同。
(8)c語言的運算符的優先順序擴展閱讀
優先順序與求值順序無關。如a+b && b*c,雖然*優先順序最高,但這個表達式求值順序是從左到右。
優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。
相同優先順序中,按結合性進行結合。大多數運算符結合性是從左到右,只有三個優先順序是從右至左結合的,它們是單目運算符、條件運算符、賦值運算符。
指針最優,單目運算優於雙目運算。如正負號。先算術運算,後移位運算,最後位運算。請特別注意:1 << 3 + 2 & 7等價於 (1 << (3 + 2))&7。邏輯運算最後結合。
『玖』 C語言的運算符的優先順序是什麼
C語言運算符優先順序順序如下所示:
(9)c語言的運算符的優先順序擴展閱讀
一個表達式可以包含多個運算符。在這種情況下,運算符的優先順序決定表達式的哪部分被處理為每個運算符的操作數。例如,按照運算規則,表達式中*、/、以及 % 的優先順序比 + 和 - 高。如下列表達式:
a - b * c
相當於 a-(b*c)。如果想讓操作數以不同的方式組合在一起,則必須使用括弧:
(a - b) * c
如果一個表達式中的兩個操作數具有相同的優先順序,那麼它們的結合律(associativity)決定它們的組合方式是從左到右或是從右到左。例如,算術運算符和容操作數的組合方式是從左到右,賦值運算符則是從右到左。
『拾』 C語言中運算符優先順序排序
C語言中運算符優先順序排序如下:
分為優先順序15級:
1、圓括弧【()】、下標運算符【[]】、分量運算符的指向結構體成員運算符【->】、結構體成員運算符【.】;
2、邏輯非運算符【!】、按位取反運算符【~】、自增自減運算符【++】【 --】、負號運算符【-】、類型轉換運算符【(類型)】、指針運算符和取地址運算符【*】【&】、長度運算符【sizeof】;
3、乘法運算符【*】、除法運算符【/】、取余運算符【%】;
4、加法運算符【+】、減法運算符【-】;
5、左移動運算符【<<】、右移動運算符【>>】;
6、關系運算符【< 】【>】【<=】【 >= 】;
7、等於運算符【==】、不等於運算符【!=】;
8、按位與運算符【&】;
9、按位異或運算符【^】;
10、按位或運算符【|】;
11、邏輯與運算符【&&】;
12、邏輯或運算符【||】;
13、條件運算符【?:】;
14、賦值運算符【=】【/=】【*=】【%=】【+=】【-=】【<<=】【>>=】【&=】【^=】【|=】;
15、逗號運算符【,】。
(10)c語言的運算符的優先順序擴展閱讀:
運算符優先順序的記法:
C語言把除了控制語句和輸入輸出以外的幾乎所有的基本操作都作為運算符處理,可見其范圍的寬(如:將賦值符「=」作為賦值運算符、方括弧作為下標運算符)。
優先順序與求值順序無關。如a+b && b*c,雖然*優先順序最高,但這個表達式求值順序是從左到右。優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。
相同優先順序中,按結合性進行結合。大多數運算符結合性是從左到右,只有三個優先順序是從右至左結合的,它們是單目運算符、條件運算符、賦值運算符。
基本的優先順序需要記住:指針最優,單目運算優於雙目運算。如正負號。先算術運算,後移位運算,最後位運算。邏輯運算最後結合。
參考資料來源:網路-運算符