c語言運算子及其優先順序彙總表口訣
圓下箭頭一頓號
非凡增減富強針地長
三乘除,四加減,五移位
千萬別把魚忘記,它在盛飯的廚子裡
小燈大燈燈燈不等
爸餵魚,舅疑惑,裸雞也疑惑
十三姨,十四父,十五逗,兜到低
「 圓下箭頭一頓號」指的是第15級的運算子。
正在裝載資料……
其中圓指的是運算子(),下指的是下標運算子,箭頭指的是指向結構體成員運算子->,頓號指的是結構體成員運算子、 「
非凡增減富強針地長」指的是第14級的運算子。其中非指的是邏輯運算子!,凡指的是按位取反運算子~,增減指的是自增和自減運算子++和--,富指的是負號運算子-,強指的是型別轉換運算子(型別),針指的是指標運算子*,地指的是位址運算子&,長指的是長度運算子sizeof 「
三乘除,四加減,五移位」 指的是第13級到第11級的運算子。其中三四五並無實際意義,只是起區分級別而已。也可以想象三指的是第13級運算子。乘除指的是乘法運算子*和除法運算子/,加減指的是加法運算子+和減法運算子-,移位指的是左移運算子《和右移運算子》 「
千萬別把魚忘記,它在盛飯的廚子裡」指的是求餘運算子%,它位於盛飯的廚子裡,即指和乘法運算子、除法運算子在一起。 「
小燈大燈燈燈不等」 指的是第10級到第9級的運算子。其中小燈大燈指的是關係運算子<、<=、>和》=,燈燈指的是等於運算子==,不等指的是不等於運算子!= 「
爸餵魚,舅疑惑,裸雞也疑惑」指的是第8級到第4級的運算子。其中,爸餵魚之指的是第8級的按位與運算子&,舅疑惑指的是第7級的按位異或運算子^和第6級的按位或運算子||,裸雞也疑惑指的是第5級、第4級的邏輯與運算子&&和邏輯或運算子|| 「
十三姨,十四父,十五逗,兜到低」指的是第3級到第1級的運算子。其中,十三姨指的是條件運算子?: (三有雙重含義,即指?:的優先級別是三,它的運算子型別也是三目,?難道不是姨即疑惑嗎?),十四父的十四沒有實際意義,父指的是賦值運算子=、+=、-=、*=、/=、%=、>>=、<<=、&=、^=和|= ,十五逗指的是第1級的運算子,兜到低指的是15級運算子以,結束。
附錄:c語言運算子及優先順序
優先順序 運算子 含義 運算子型別 結合方向
15 () 圓括號 單目 自左向右
下標運算子
—> 指向結構體成員運算子
、 結構體成員運算子
14 ! 邏輯非運算子 自右向左
~ 按位取反運算子
++ 自增運算子
-- 自減運算子
- 負號運算子
(型別) 型別轉換運算子
* 指標運算子
& 位址運算子
sizeof 長度運算子
13 * 乘法運算子 雙目 自左向右
/ 除法運算子
% 求餘運算子
12 + 加法運算子
- 減法運算子
11 << 左移運算子
>> 右移運算子
10 <、<=、>、>= 關係運算子
9 == 等於運算子
!= 不等於運算子
8 & 按位與運算子
7 ^ 按位異或運算子
6 | 按位或運算子
5 && 邏輯與運算子
4 || 邏輯或運算子
3 ?: 條件運算子 三目 自右向左
2 =、+=、-=、*=、
/=、%=、>>=、
<<=、&=、^=、|= 賦值運算子 雙目
1 , 逗號運算子 雙目 自左向右
②
括號成員第一; //括號運算子() 成員運算子. ->
全體單目第二; //所有的單目運算子比如++ -- +(正) -(負) 指標運算*&
乘除餘三,加減四; //這個"餘"是指取餘運算即%
移位五,關係六; //移位運算子:<< >> ,關係:> < >= <= 等
等於(與)不等排第七; //即== !=
位與異或和位或; //這幾個都是位運算: 位與(&)異或(^)位或(|)
"三分天下"**十;
邏輯或跟與 //邏輯運算子:|| 和 &&
十二和十一; //注意順序:優先順序(||) 底於 優先順序(&&)
條件高於賦值, //三目運算子優先順序排到 13 位只比賦值運算子和","高//需要注意的是賦值運算子很多!
逗號運算級最低! //逗號運算子優先順序最低
由於c語言的運算子優先順序與c++的不完全一樣(主要是增加了幾個運算子),所以這個口訣不能完全實用於c++.但是應該能夠相容,大家可以比較一下他們的區別應該就能夠很快掌握c++的優先順序的!
((*strdest++=*strsrc++)!='\0'); :
重點:++後增運算子優先順序高於*
1.*strdest++相當於 *(strdest++)
2.由於是後自增,故執行順序為:
*strdest=*strsrc
strdest++ strsrc++ //該級順序不明
將*strdest與'\0'比較 //即,整個表示式的值為*strdest與'\0'的比較結果
值得注意的是,對於賦值表示式,表示式本身的值等於左邊子表示式的值。
通過以上深入的分析,我們知道這個表示式完成了以下多個功能:
1.對於指標strdest, strsrc,將strsrc所指的記憶體空間的值賦給由strdest所指的記憶體空間。
2.判斷賦值後的strdest所指的記憶體空間的指是否等於0。
3.對於指標strdest,strsrc,他們的值分別加1,即指向下乙個元素。
即:該表示式實現了以下三個功能:
1.對於指標strdest, strsrc,將strsrc所指的記憶體空間的值賦給由strdest所指的記憶體空間。
2.判斷賦值後的strdest所指的記憶體空間的值是否等於0。
3.對於指標strdest,strsrc,他們的值分別加1,即指向下乙個元素。
C語言運算子及其優先順序彙總表口訣
c語言運算子及其優先順序彙總表口訣 圓下箭頭一頓號 非凡增減富強針地長 三乘除,四加減,五移位 千萬別把魚忘記,它在盛飯的廚子裡 小燈大燈燈燈不等 爸餵魚,舅疑惑,裸雞也疑惑 十三姨,十四父,十五逗,兜到低 圓下箭頭一頓號 指的是第15級的運算子。其中圓指的是運算子 下指的是下標運算子,箭頭指的是指...
C語言運算子及其優先順序彙總表口訣
c語言運算子及其優先順序彙總表口訣 圓下箭頭一頓號 非凡增減富強針地長 三乘除,四加減,五移位 千萬別把魚忘記,它在盛飯的廚子裡 小燈大燈燈燈不等 爸餵魚,舅疑惑,裸雞也疑惑 十三姨,十四父,十五逗,兜到低 圓下箭頭一頓號 指的是第15級的運算子。其中圓指的是運算子 下指的是下標運算子,箭頭指的是指...
C語言運算子及其優先順序彙總表口訣
c語言運算子及其優先順序彙總表口訣 圓下箭頭一頓號 非凡增減富強針地長 三乘除,四加減,五移位 千萬別把魚忘記,它在盛飯的廚子裡 小燈大燈燈燈不等 爸餵魚,舅疑惑,裸雞也疑惑 十三姨,十四父,十五逗,兜到低 圓下箭頭一頓號 指的是第15級的運算子。其中圓指的是運算子 下指的是下標運算子,箭頭指的是指...