圓下箭頭一頓號 非凡增減富強針地長 三乘除,四加減,,五移位 千萬別把魚忘記,,它在盛飯的廚子里 小燈大燈燈燈不等 爸喂魚,舅疑惑,,裸雞也疑惑 十三姨,,十四父,十五逗,,兜到低 “圓下箭頭一頓號”指的是第15級的運算符,。其中圓指的是運算符(),下指的是下標(biāo)運算符[],,箭頭指的是指向結(jié)構(gòu)體成員運算符->,,頓號指的是結(jié)構(gòu)體成員運算符、 “非凡增減富強針地長”指的是第14級的運算符,。其中非指的是邏輯運算符!,,凡指的是按位取反運算符~,增減指的是自增和自減運算符++和--,,富指的是負(fù)號運算符-,,強指的是類型轉(zhuǎn)換運算符(類型),針指的是指針運算符*,,地指的是地址運算符&,,長指的是長度運算符Sizeof “三乘除,四加減,,五移位” 指的是第13級到第11級的運算符,。其中三四五并無實際意義,只是起區(qū)分級別而已,。也可以想象三指的是第13級運算符。乘除指的是乘法運算符*和除法運算符/,,加減指的是加法運算符+和減法運算符-,,移位指的是左移運算符<<和右移運算符>> “千萬別把魚忘記,它在盛飯的廚子里”指的是求余運算符%,,它位于盛飯的廚子里,,即指和乘法運算符、除法運算符在一起,。 “小燈大燈燈燈不等” 指的是第10級到第9級的運算符,。其中小燈大燈指的是關(guān)系運算符<、<=、>和>=,,燈燈指的是等于運算符==,,不等指的是不等于運算符!= “爸喂魚,舅疑惑,,裸雞也疑惑”指的是第8級到第4級的運算符,。其中,爸喂魚之指的是第8級的按位與運算符&,,舅疑惑指的是第7級的按位異或運算符^和第6級的按位或運算符||,,裸雞也疑惑指的是第5級、第4級的邏輯與運算符&&和邏輯或運算符|| “十三姨,,十四父,,十五逗,兜到低”指的是第3級到第1級的運算符,。其中,,十三姨指的是條件運算符?: (三有雙重含義,即指?:的優(yōu)先級別是三,,它的運算符類型也是三目,,?難道不是姨即疑惑嗎?),,十四父的十四沒有實際意義,,父指的是賦值運算符=、+=,、-=,、*=、/=,、%=,、>>=、<<=,、&=,、^=和|= ,十五逗指的是第1級的運算符,,兜到低指的是15級運算符以,,結(jié)束。 附錄:C語言運算符及優(yōu)先級 優(yōu)先級 運算符 含義 運算符類型 結(jié)合方向 括號成員第一; //括號運算符[]() 成員運算符. -> 全體單目第二; //所有的單目運算符比如++ -- +(正) -(負(fù)) 指針運算*& 乘除余三,加減四; //這個"余"是指取余運算即% 移位五,關(guān)系六; //移位運算符:<< >> ,,關(guān)系:> < >= <= 等 等于(與)不等排第七; //即== != 位與異或和位或; //這幾個都是位運算: 位與(&)異或(^)位或(|) "三分天下"八九十; 邏輯或跟與 //邏輯運算符:|| 和 && 十二和十一; //注意順序:優(yōu)先級(||) 底于 優(yōu)先級(&&) 條件高于賦值, //三目運算符優(yōu)先級排到 13 位只比賦值運算符和","高//需要注意的是賦值運算符很多,! 逗號運算級最低! //逗號運算符優(yōu)先級最低 由于C語言的運算符優(yōu)先級與C++的不完全一樣(主要是增加了幾個運算符),所以這個口訣不能完全實用于C++.但是應(yīng)該能夠兼容,,大家可以比較一下他們的區(qū)別應(yīng)該就能夠很快掌握C++的優(yōu)先級的,!
重點:++后增運算符優(yōu)先級高于* 1.*strDest++相當(dāng)于 *(strDest++) 2.由于是后自增,故執(zhí)行順序為: *strDest=*strSrc 將*strDest與'\0'比較 //即,,整個表達(dá)式的值為*strDest與'\0'的比較結(jié)果 值得注意的是,,對于賦值表達(dá)式,表達(dá)式本身的值等于左邊子表達(dá)式的值,。 通過以上深入的分析,,我們知道這個表達(dá)式完成了以下多個功能: 1.對于指針strDest, strSrc,將strSrc所指的內(nèi)存空間的值賦給由strDest所指的內(nèi)存空間,。 2.判斷賦值后的strDest所指的內(nèi)存空間的指是否等于0,。 3.對于指針strDest,strSrc,他們的值分別加1,即指向下一個元素,。 即:該表達(dá)式實現(xiàn)了以下三個功能: 1.對于指針strDest, strSrc,,將strSrc所指的內(nèi)存空間的值賦給由strDest所指的內(nèi)存空間。 2.判斷賦值后的strDest所指的內(nèi)存空間的值是否等于0,。 3.對于指針strDest,strSrc,他們的值分別加1,,即指向下一個元素。 |
|