久久午夜无码,日日射天天射五月丁香婷婷我来了 ,欧美黑人又长又粗在线视频,午夜天网站

c語(yǔ)言優(yōu)先級(jí)表(關(guān)于CC運(yùn)算符優(yōu)先級(jí)問(wèn)題探討)

c語(yǔ)言優(yōu)先級(jí)表(關(guān)于CC運(yùn)算符優(yōu)先級(jí)問(wèn)題探討)

藤安筠 2025-04-11 科技 19 次瀏覽 0個(gè)評(píng)論

最近在知乎上看到一個(gè)c/c++運(yùn)算符連寫的問(wèn)題,引發(fā)了諸多網(wǎng)友的討論,具體內(nèi)容如下圖:

關(guān)于C/C++運(yùn)算符優(yōu)先級(jí)問(wèn)題探討

乍一看,這句代碼很長(zhǎng),確實(shí)有些讓人糊涂,尤其是學(xué)習(xí)過(guò)python的同學(xué),對(duì)此寫法不太理解,今天我們一起來(lái)說(shuō)一說(shuō)。

優(yōu)先級(jí)

在c語(yǔ)言的表達(dá)式中,如果存在多個(gè)運(yùn)算符的時(shí)候,需要考慮數(shù)據(jù)的優(yōu)先級(jí)和結(jié)合方向的問(wèn)題,例如:x = a + b * c -d在這個(gè)例子中,c語(yǔ)言的處理流程是:

1. 先做乘法b*c,

2. 然后先做加法,后做減法

3. 最后將計(jì)算結(jié)果賦值給x

我們驗(yàn)證一下:

關(guān)于C/C++運(yùn)算符優(yōu)先級(jí)問(wèn)題探討

1 + 2 *3 -4,結(jié)果為3,驗(yàn)證成功!

關(guān)于C/C++運(yùn)算符優(yōu)先級(jí)問(wèn)題探討

通過(guò)這個(gè)例子,我們可以總結(jié)如下:對(duì)于表達(dá)式

a op1 b op2 c ,它的運(yùn)行邏輯有兩種可能性:

1. 如果op1優(yōu)先級(jí)高于op2,則為:(a op1 b) op2 c

2. 如果op2優(yōu)先級(jí)高于op1,則為:a op1 (b op2 c)

如果op1與op2優(yōu)先級(jí)相同,則取決于結(jié)合方向。所謂結(jié)合方向指的是"從左至右"或"從右至左"。

結(jié)合方向

關(guān)于結(jié)合方向,我們一起來(lái)探討一下,還是剛剛的例子:x = a+b *c -d,這里面有二元運(yùn)算和賦值運(yùn)算,在c語(yǔ)言中:

· 賦值運(yùn)算的結(jié)合方向?yàn)椋簭挠抑磷?/p>

· 二元運(yùn)算符的結(jié)合方向?yàn)椋簭淖笾劣?/p>

我們假設(shè) b*c 的值為m,則,

· a + m -d 可以翻譯為 (a + m) -d,,結(jié)合方向是從左至右

· x = a + m -d 可以翻譯為: x = (a + m -d),結(jié)合方向是從右至左

在C/C++中,所有的運(yùn)算符都有明確的優(yōu)先級(jí)和結(jié)合方向定義,具體如下:

關(guān)于C/C++運(yùn)算符優(yōu)先級(jí)問(wèn)題探討

問(wèn)題解答

鋪墊好了知識(shí)點(diǎn),我們回歸到最初網(wǎng)友的問(wèn)題上,x +=5 ==4,

由于==號(hào)的優(yōu)先級(jí)大于+=號(hào),所以這句代碼的邏輯可以解讀為:

1. x += (5 ==4)

2. 即先判斷 5 == 4是否成立,此時(shí)不成立,返回false,即返回0

3. 然后再計(jì)算x+=0,所以最終結(jié)果為0。

使用代碼驗(yàn)證一下:

關(guān)于C/C++運(yùn)算符優(yōu)先級(jí)問(wèn)題探討

執(zhí)行結(jié)果:

關(guān)于C/C++運(yùn)算符優(yōu)先級(jí)問(wèn)題探討

可以看到,輸出的結(jié)果依然為10,說(shuō)明x添加的值為0,得到驗(yàn)證。

接下來(lái),我們修改一下代碼,讓兩個(gè)數(shù)字比較值返回true,再次驗(yàn)證一下結(jié)果,如下圖:

關(guān)于C/C++運(yùn)算符優(yōu)先級(jí)問(wèn)題探討

執(zhí)行結(jié)果:

關(guān)于C/C++運(yùn)算符優(yōu)先級(jí)問(wèn)題探討

進(jìn)一步思考

對(duì)于這種x +=5 ==4表達(dá)式的編碼風(fēng)格,我們?cè)陂_發(fā)中是不建議的,這樣寫雖然高效簡(jiǎn)潔、正確運(yùn)行、看起來(lái)很酷,但是存在一個(gè)風(fēng)險(xiǎn),即需要人進(jìn)一步確認(rèn)這種表達(dá)式是否就是開發(fā)人員的真正意圖。我們?cè)诠鹃_發(fā)的時(shí)候,通常是很多同事協(xié)同開發(fā),當(dāng)同事看到這類代碼的時(shí)候,會(huì)產(chǎn)生懷疑,從而增加彼此的溝通成本。我們?cè)诰幋a的時(shí),盡量不要讓人產(chǎn)生歧義,如果一定想要寫這種風(fēng)格的代碼,我建議加上括號(hào),即:x +=(5 == 4),這樣語(yǔ)義更加明確,從而也避免造成同事因揣摩代碼而帶來(lái)的苦惱。

當(dāng)然,深刻的理解語(yǔ)法是我們必須要做到的,這種代碼常見于面試題中,對(duì)于考察面試者對(duì)語(yǔ)法的理解程度是個(gè)不錯(cuò)的選擇。

轉(zhuǎn)載請(qǐng)注明來(lái)自夕逆IT,本文標(biāo)題:《c語(yǔ)言優(yōu)先級(jí)表(關(guān)于CC運(yùn)算符優(yōu)先級(jí)問(wèn)題探討)》

每一天,每一秒,你所做的決定都會(huì)改變你的人生!

發(fā)表評(píng)論

快捷回復(fù):

評(píng)論列表 (暫無(wú)評(píng)論,19人圍觀)參與討論

還沒有評(píng)論,來(lái)說(shuō)兩句吧...

国产成人免费A在线视频| 人妻AⅤ中文字幕无码| 97色伦午夜国产亚洲精品| 日韩.中文.欧美| 尤物TV国产精品看片在线| 日韩一区视频精品无高清在线观| 午夜视频四区久久| 亚洲丰满少妇一级毛片| 日韩精品无码免费专网站| 亚洲精品无码白丝爆白浆在线观看| 在线看的你懂得| 久思思精品视频| 亚洲动漫精品无码av天堂| 亚洲人成伊人成| 亚洲三级在线| 夜色77av| 日韩免费一区高清欧美人妻精品| 久久精品天天中文字幕人| 涩爱AV无码| 亚洲AV第一成肉网| 午夜成人国产理论片| 亚洲欧美少妇人妻| 欧美最新综合| 日本午夜黄色| 中文字幕无码精品视频| AV成人无码无在线观看| 亚洲天堂无码人妻| 无码在线视频播放一区| 国内啪啪小视频| 无码成人精品中文字幕| 中文字幕在线你懂的视频| 国产电影精品98| 一区二区三区四天堂| 精品第一国产综合精品aⅴ| 蜜臀91视频免费看网站| 中文字幕在线视频中| 亚洲熟妇一| 变态av另类天堂| 久久久再现久久| 欧美日韩精品久久亚洲| 丝袜情侣麻豆高潮|