C 语言中,x += 5 == 4 是什么意思?
#討論這個(gè)有意義嗎?
這個(gè)是在知乎上看到的一個(gè)問(wèn)題,評(píng)論挺多的。其中有人提到,研究這個(gè)東西有什么用?編程的時(shí)候我們不能這么寫(xiě)的。我記得在大學(xué)的時(shí)候,我們的副院長(zhǎng)給我們上課,就給我們提到,要習(xí)慣并且喜歡使用 「( 」和 「)」,這兩個(gè)符號(hào)。
所以上面的表達(dá)式,如果想表達(dá)清楚自己的意圖,可以這樣寫(xiě)
((x?+=?5)?==?4)或者是
(x?+=?(5?==?4))但是有些程序員為什么喜歡這樣寫(xiě)呢?
我們可以肯定,寫(xiě)出這樣代碼的人,一定對(duì)運(yùn)算符優(yōu)先級(jí)背得滾瓜爛熟了。如果作為一個(gè)程序員,他認(rèn)為對(duì)運(yùn)算符要了如指掌,他覺(jué)得別人對(duì)這個(gè)代碼肯定一眼就能看懂,他寫(xiě)出這樣的代碼也是沒(méi)有問(wèn)題的。
我們學(xué)這樣的代碼有什么用?
學(xué)習(xí)這樣并不表示我們要寫(xiě)出這樣的代碼,而是,我們?nèi)绻诠ぷ鲗W(xué)習(xí)中,遇到這樣的代碼,我們就一眼能看出來(lái)這個(gè)代碼的作用。
C語(yǔ)言的標(biāo)準(zhǔn)有幾百頁(yè),大部分人不會(huì)仔細(xì)研究每個(gè)細(xì)節(jié),有些工程師覺(jué)得某些東西沒(méi)有用,大概率是因?yàn)樗谧约旱墓ぷ髦袥](méi)有用到。有的程序員喜歡研究或者在工作中需要使用這樣的方法,這就是這種代碼存在的其中一個(gè)原因吧。
#表達(dá)式和運(yùn)算符優(yōu)先級(jí)
C語(yǔ)言在一個(gè)表達(dá)式中,如果遇到幾個(gè)運(yùn)算符,要考慮優(yōu)先級(jí)和結(jié)合方向。
比如,表達(dá)式 x pri1 y pri2 z,可能出現(xiàn)兩種可能性
(x pri1 y )pri2 z
x pri1 (y pri2 z)
如果運(yùn)算符 pri1 的優(yōu)先級(jí)比pri2 高,那么就是上面的第一種情況。
如果運(yùn)算符 pri1 的優(yōu)先級(jí)比pri2 低,那么就是上面的第二種情況。
如果優(yōu)先級(jí)相同,那就要考慮結(jié)合方向。
結(jié)合方向是 「左到右」或者「右到左」。
例如,「= 」 的結(jié)合方向是 「右到左」。
所以
a = b = c ?表達(dá)式的意義是 a =( b = c ?)
而 「+」的結(jié)合方向是 「左到右」
所以
a + b + c ?表達(dá)式的意義是 (a + b) + c
#C語(yǔ)言運(yùn)算符優(yōu)先級(jí)
#解析上面的表達(dá)式
x?+=?5?==?4「+=」 的優(yōu)先級(jí)是14
「 ==」 的優(yōu)先級(jí)是 7
所以上面表達(dá)式的意義是
x?+=?(5?==?4)運(yùn)行一下
#表達(dá)式的巧用
很多人不怎么用這種取巧的寫(xiě)法,我這兩天看代碼看到一個(gè),截圖給大家看看,非常簡(jiǎn)單,也是一種取巧的方法,挺有意思的。一般情況下,我們還是會(huì)把 x = y 寫(xiě)在if 外面,直接寫(xiě)在if里面還是挺有意思的。
如果寫(xiě)成下面這樣的話會(huì)輸出什么呢?評(píng)論給出你的答案~
#include?"stdio.h"int?main(void) {int?x?=?2;?int?y?=?4;int?z?=?4;if(?x?=?y?>=?z){printf("-----------01\n");}return?(0); }?? 回復(fù)「?籃球的大肚子」進(jìn)入技術(shù)群聊
回復(fù)「1024」獲取1000G學(xué)習(xí)資料
總結(jié)
以上是生活随笔為你收集整理的C 语言中,x += 5 == 4 是什么意思?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 马上就校招了,是要去实习还是复习?
- 下一篇: WEB打印插件Lodop