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