① c語言運算符優先順序口訣
C語言運算符及其優先順序匯總表口訣 圓下箭頭一頓號 非凡增減富強針地長 三乘除,四加減,五移位 千萬別把魚忘記,它在盛飯的廚子里 小燈大燈燈燈不等 爸喂魚,舅疑惑,裸雞也疑惑 十三姨,十四父,十五逗,兜到低 「圓下箭頭一頓號」指的是第15級的運算符。其中圓指的是運算符(),下指的是下標運算符[],箭頭指的是指向結構體成員運算符->,頓號指的是結構體成員運算符、 「非凡增減富強針地長」指的是第14級的運算符。其中非指的是邏輯運算符!,凡指的是按位取反運算符~,增減指的是自增和自減運算符++和--,富指的是負號運算符-,強指的是類型轉換運算符(類型),針指的是指針運算符*,地指的是地址運算符&,長指的是長度運算符Sizeof 「三乘除,四加減,五移位」 指的是第13級到第11級的運算符。其中三四五並無實際意義,只是起區分級別而已。也可以想像三指的是第13級運算符。乘除指的是乘法運算符*和除法運算符/,加減指的是加法運算符+和減法運算符-,移位指的是左移運算符<<和右移運算符>> 「千萬別把魚忘記,它在盛飯的廚子里」指的是求余運算符%,它位於盛飯的廚子里,即指和乘法運算符、除法運算符在一起。 「小燈大燈燈燈不等」 指的是第10級到第9級的運算符。其中小燈大燈指的是關系運算符<、<=、>和>=,燈燈指的是等於運算符==,不等指的是不等於運算符!= 「爸喂魚,舅疑惑,裸雞也疑惑」指的是第8級到第4級的運算符。其中,爸喂魚之指的是第8級的按位與運算符&,舅疑惑指的是第7級的按位異或運算符^和第6級的按位或運算符||,裸雞也疑惑指的是第5級、第4級的邏輯與運算符&&和邏輯或運算符|| 「十三姨,十四父,十五逗,兜到低」指的是第3級到第1級的運算符。其中,十三姨指的是條件運算符?: (三有雙重含義,即指?:的優先順序別是三,它的運算符類型也是三目,?難道不是姨即疑惑嗎?),十四父的十四沒有實際意義,父指的是賦值運算符=、+=、-=、*=、/=、%=、>>=、<<=、&=、^=和|= ,十五逗指的是第1級的運算符,兜到低指的是15級運算符以,結束。
② C語言運算符的優先順序!
從右往左優先
先執行a-=a,a=0
然後a+=0,就是0+0=0了
加個括弧a+=(a-=a)
你想的好像筆誤咯?代碼第一行應該是-=吧?
-------------------
這里變數a執行一次之後就被重新賦值了,不再是8了
聲明成靜態才行
③ 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。
五級運算符:「 * 」 乘法運算符。
六級運算符:「 + 」加法運算符。
七級運算符:<< 左移運算符;>> 右移運算符。
八級運算符:<、<=、>、>=關系運算符。
九級運算符:「 == 」等於運算符;「 != 」不等於運算符。
十級運算符:「 & 」按位與運算符。
十一級運算符:「 ∧ 」按位異或運算符。
十二級運算符:「 | 」按位或運算符。
十三級運算符:「&&」邏輯與運算符。
十四級運算符:「 || 」邏輯或運算符。
十五級運算符:? :條件運算符。
(3)c語言運算符的優先順序擴展閱讀
C語言中各運算符的結合性:
1、左結合性(自左至右):
例如算術運算符的結合性是自左至右,即先左後右。如有表達式x-y+z 則y 應先與「-」號結合,執行x-y 運算,然後再執行+z 的運算。這種自左至右的結合方向就稱為「左結合性」。
2、右結合性(自右至左)
自右至左的結合方向稱為「右結合性」。最典型的右結合 性運算符是賦值運算符。如x=y=z,由於「=」的右結合性,應先執行y=z 再執行x=(y=z)運算。C語言運算符中有不少為右結合性,應注意區別,以避免理解錯誤。
④ 求C語言運算符優先順序
優先順序 運算符 名稱或含義 使用形式 結合方向 說明
1 [] 數組下標 數組名[常量表達式] 左到右
() 圓括弧 (表達式)/函數名(形參表)
. 成員選擇(對象) 對象.成員名
-> 成員選擇(指針) 對象指針->成員名
2 - 負號運算符 -表達式 右到左 單目運算符
(類型) 強制類型轉換 (數據類型)表達式
++ 自增運算符 ++變數名/變數名++ 單目運算符
-- 自減運算符 --變數名/變數名-- 單目運算符
* 取值運算符 *指針變數 單目運算符
& 取地址運算符 &變數名 單目運算符
! 邏輯非運算符 !表達式 單目運算符
~ 按位取反運算符 ~表達式 單目運算符
sizeof 長度運算符 sizeof(表達式)
3 / 除 表達式/表達式 左到右 雙目運算符
* 乘 表達式*表達式 雙目運算符
% 余數(取模) 整型表達式/整型表達式 雙目運算符
4 + 加 表達式+表達式 左到右 雙目運算符
- 減 表達式-表達式 雙目運算符
5 << 左移 變數<<表達式 左到右 雙目運算符
>> 右移 變數>>表達式 雙目運算符
6 > 大於 表達式>表達式 左到右 雙目運算符
>= 大於等於 表達式>=表達式 雙目運算符
< 小於 表達式<表達式 雙目運算符
<= 小於等於 表達式<=表達式 雙目運算符
7 == 等於 表達式==表達式 左到右 雙目運算符
!= 不等於 表達式!= 表達式 雙目運算符
8 & 按位與 表達式&表達式 左到右 雙目運算符
9 ^ 按位異或 表達式^表達式 左到右 雙目運算符
10 | 按位或 表達式|表達式 左到右 雙目運算符
11 && 邏輯與 表達式&&表達式 左到右 雙目運算符
12 || 邏輯或 表達式||表達式 左到右 雙目運算符
13 ?: 條件運算符 表達式1? 表達式2: 表達式3 右到左 三目運算符
14 = 賦值運算符 變數=表達式 右到左
/= 除後賦值 變數/=表達式
*= 乘後賦值 變數*=表達式
%= 取模後賦值 變數%=表達式
+= 加後賦值 變數+=表達式
-= 減後賦值 變數-=表達式
<<= 左移後賦值 變數<<=表達式
>>= 右移後賦值 變數>>=表達式
&= 按位與後賦值 變數&=表達式
^= 按位異或後賦值 變數^=表達式
|= 按位或後賦值 變數|=表達式
15 , 逗號運算符 表達式,表達式,… 左到右 從左向右順序運算
說明:
同一優先順序的運算符,運算次序由結合方向所決定。
簡單記就是:! > 算術運算符 > 關系運算符 > && > || > 賦值運算符
⑤ c語言運算符的優先順序
本來是表格的形式,復制過來就變形了,不過可以提供你要的信息,如果不明白,可以hi我,我給你個資料
優先順序 運算符 名稱或含義 使用形式 結合方向 說明
1
[] 數組下標 數組名[常量表達式]
左到右 () 圓括弧 (表達式) /函數名(形
參表)
. 成員選擇(對象) 對象.成員名
-> 成員選擇(指針) 對象指針->成員名
2
- 負號運算符 -表達式
右到左
單目運算符
(類型) 強制類型轉換 (數據類型)表達式
++ 自增運算符 ++變數名/變數名++ 單目運算符
-- 自減運算符 --變數名/變數名-- 單目運算符
* 取值運算符 *指針變數 單目運算符
& 取地址運算符 &變數名 單目運算符
! 邏輯非運算符 !表達式 單目運算符
~ 按位取反運算符 ~表達式 單目運算符
sizeof 長度運算符 sizeof(表達式)
3
/ 除 表達式/表達式
左到右
雙目運算符
* 乘 表達式*表達式 雙目運算符
% 余數(取模) 整型表達式/整型表
達式 雙目運算符
4
+ 加 表達式+表達式 左到右 雙目運算符
- 減 表達式-表達式 雙目運算符
5
<< 左移 變數<<表達式 左到右 雙目運算符
>> 右移 變數>>表達式 雙目運算符
6
> 大於 表達式>表達式
左到右
雙目運算符
>= 大於等於 表達式>=表達式 雙目運算符
< 小於 表達式<表達式 雙目運算符
<= 小於等於 表達式<=表達式 雙目運算符
7
== 等於 表達式==表達式 左到右 雙目運算符
!= 不等於 表達式!= 表達式 雙目運算符
8 & 按位與 表達式&表達式 左到右 雙目運算符
9 ^ 按位異或 表達式^表達式 左到右 雙目運算符
10 | 按位或 表達式|表達式 左到右 雙目運算符
11 && 邏輯與 表達式&&表達式 左到右 雙目運算符
12 || 邏輯或 表達式||表達式 左到右 雙目運算符
13 ?: 條件運算符 表達式 1? 表達式 2:
表達式 3
右到左 三目運算符
14
= 賦值運算符 變數=表達式
右到左
/= 除後賦值 變數/=表達式
*= 乘後賦值 變數*=表達式
%= 取模後賦值 變數%=表達式
+= 加後賦值 變數+=表達式
-= 減後賦值 變數-=表達式
<<= 左移後賦值 變數<<=表達式
>>= 右移後賦值 變數>>=表達式
&= 按位與後賦值 變數&=表達式
^= 按位異或後賦值 變數^=表達式
|= 按位或後賦值 變數|=表達式
15 , 逗號運算符 表達式,表達式,… 左到右 從左向右順序運算
⑥ C語言的運算符的優先順序是什麼
1、最高級:出現同級別運算符時的結合方向是從左往右(下面級別沒寫結合順序時,默認是從左往右)。
( )圓括弧
[ ]下標運算符號
->指向結構體成員運算符
.結構體成員運算符
⑦ C語言裡面的運算符優先順序如何
C語言中,運算符的運算優先順序共分為15 級。1 級最高,15 級最低。 在表達式中,優先順序較高的先於優先順序較低的進行運算。而在一個運算量兩側的運算符 優先順序相同時,則按運算符的結合性所規定的結合方向處理。
各等級運算符如下:
(以下說明中,對傳統的1級和2級做了細化,1和2對應傳統1級,3和4對應傳統2級,所以細化說明共有17級。)
1、基本表達式 1級
基本表達式(Primary expressions),主要是用於運算符之間,做為運算數。
標識,常量,字元串文字量,優先順序提升表達式最優先執行。
優先順序提升表達式是指圓括弧包圍的表達式,如「( expression )」
2、後綴表達式 2級
postfix-expression [ expression ],數組下標運算。
postfix-expression ( argument-expression-list),函數調用,括弧內的參數可選。
postfix-expression . identifier,成員訪問,
postfix-expression -> identifier,成員訪問,->號之前應為指針。
postfix-expression ++,後綴自增
postfix-expression --,後綴自減
( type-name ) { initializer-list }
( type-name ) { initializer-list , } 復合初始化,C99後新增。
3、單目/一元運算 3級
++ unary-expression 前綴自增
-- unary-expression 前綴自減
unary-operator cast-expression 單目轉型表式式, 包括 取地址& ,提領 * , 正號+ ,負號- 位反~ 邏輯否!。
sizeof unary-expression 求類型長度,對表達式求類型長度
sizeof ( type-name ) 求類型長度
4、強制類型表達式 4級
( type-name ) cast-expression,強製表達式成為type-name指定的類型。
5、乘法表達式 5級
「 * 」 乘法運算符;「 / 」除法運算符;「 % 」 取余運算符。
6、加法運算符 6級
「 + 」加法運算符;「 - 」減法運算符。
7、移位運算符 7級
<< 左移運算符;>> 右移運算符。
8、關系運算符 8級
<、<=、>、>=關系運算符。
9、相等運算符 9級
「 == 」等於運算符;「 != 」不等於運算符。
10、位與運算符 10級
「 & 」按位與運算符
11、位異或運算符 11級
「 ∧ 」按位異或運算符(Bitwise exclusive OR operator)。
12、位或運算符 12 級
「 | 」按位或運算符(Bitwise inclusive OR operator)。
13、邏輯與運算符 13級
「&&」邏輯與運算符。
14、邏輯或運算符 14 級
「 || 」邏輯或運算符。
15、三元條件運算符 15級
? :條件運算符。
16、賦值運算符 16 級
=、 +=、 -=、 *=、 /=、 %=、 &=、 ^=、 |=、 <<=、 >>=賦值運算符。
17、逗號運算符 17級
「,」逗號運算符。
具體可參見下圖:
⑧ C語言中的邏輯運算符按優先順序別是
要了解c語言運算符優先順序高低就先從通常數學上運算優先順序高低說起。
通常,一個數學算式里如果有加減乘除和括弧,我們會先算括弧裡面的式子,再算括弧外面的乘除再然後才是加減。那麼這時候我們說括弧的優先順序比加減乘除的要高,所以我們就先計算括弧里的式子。然後是乘除,再然後才是加減。其中加減乘除就是運算符。所以運算符的高低決定了運算的先後順序。
同理。C語言中的運算優先順序和這一個樣,只要你把運算符的優先順序記住就可以了。
⑨ C語言運算符優先順序順序
一共有十五個優先順序:
1
()
[]
.
->
2
!
~
-(負號)
++
--
&(取變數地址)*
(type)(強制類型)
sizeof
3
*
/
%
4
+
-
5
>>
<<
6
>
>=
<
<=
7
==
!=
8
&
9
^
10
|
11
&&
12
||
13
?:
14
=
+=
-=
*=
/=
%=
|=
^=
&=
>>=
<<=
15
,
就著多吧
結合性:2
13
14
是從右至左
其他都是
從左至右
有問題可以在交流的
共同進步