C 語言中,x 5 4 是什麼意思?

時間 2021-05-06 13:19:03

1樓:aro

先把+=復合運算展開得到:

x = x + 5 == 4

運算子優先順序排列:+ > == > =

所以語句的邏輯是這樣的:x先加5再和4比較看是不是相等然後再把比較結果(0或1)賦給x

x = ( (x+5) == 4 )

2樓:

在專案中這麼寫,不怕別人打你麼。。規規矩矩的寫不好麼。。。

學習倒是可以學習。。只不過這種奇淫技巧完全可以蛋疼的時候看。。

3樓:匯智動力IT學院

是不好好說話的意思。

x+=5==4,其實就是x+=(5==4)。

5==4很明顯是false,也就是0。

所以,x+=5==4

即x+=0

即x=x+0

那麼問題來了,寫個x非得寫成x+=5==4是什麼意思?

就好像去買饅頭,跟老闆說:「我要乙個包子,白面餡,沒有褶。」

老闆不抽你?

4樓:

這個問題,是有必要學習的,但如果你實戰中這樣寫,會被錘死的。

知識點主要就是對運算優先順序的理解,具體什麼意思,其他回答專業得多。

運算優先順序這個,如果偶爾漏掉括號,老鳥也有可能出錯,比如在if判斷中,有位運算,移位,相與之類的,忘了加括號的話,有可能它就不跑進if裡去,浪費時間去分析。

5樓:

這個語句用小學數學的眼光來看,的確覺得很奇怪,不過用乙個程式設計師的眼光來看,則最正常不過。

但這種寫法的確不好,是乙個優秀的程式設計師應該避免的。

通常,我們書寫時,應計算先執行,判斷後執行。這既是書寫的規範,也是理解的正向思路。

儘管被(編譯器)允許,我們也要避免把判斷當作乙個值而參與計算。

但是,這個語句本身只是乙個符號優先順序的問題,幾乎所有語言都可以寫出類似的形式。

所以,這不是 C 獨有的弊病,而是程式設計師不好的習慣。

C 的確有很多奇淫巧技,但 C 本身是一門簡潔清晰的語言,如果不喜奇淫巧技,是完全可避免的。奇淫巧技也不應是乙個優秀的程式所刻意追求的。

然而,C 的一些奇淫巧技,往往也有其正確的不得已的用途。比如巨集,乙個被展開的(函式)巨集,是相當難於構建的,也相當難於被理解,相當難於被除錯。但是,巨集的確可以提高執行效率,甚至可能帶來效率的較大提公升。

沒有巨集這一工具,或者說這種奇淫巧技,就做不到這一點。大多數語言都把執行效率問題交給了編譯器或直譯器,但 C 沒有,C 總是直面一切問題。

C 的簡潔清晰也體現在資料結構的構建上,要是象 Python 那樣使用資料結構,那才真是災難呢!

C 的真正弊病,不在語法層面,而是在工程層面。用 C 來構建大工程,是非常難於管理的,也相當難於維護。所以才有了 C++。

而 C++的弊病在於想要一切東西,結果搞得太複雜太抽象了!

6樓:流石Lee

過分依賴優先順序,導致可讀性和可維護性下降。作為考題可能還行,工作中這樣,希望他被開除甚至進黑名單被逼轉業,不要禍害同行了。

正向來講,0為false,非0為true,但反過來,false會被認為是0,而true被認為是1。按照運算子優先順序,==高於+=,所以等價於x += (5==4),括號中為false,放到整形運算中,會被當作0,所以變成x+=0 ,就等於x。

可能有表述粗糙的地方,因為我醉了(字面意思

7樓:

看了一些回答,很多人提到運算子優先順序。

我寫了10多年程式,從來不去記這些,都是用括號,一目了然。

更重要的是,我從來不會搞這種花裡胡哨的東西。

明確一點,程式是讓機器編譯執行的,但最重要的是讓其他的能看懂的,出了錯容易改。

維護成本高的原因之一就是無意義的炫技。

8樓:ontheway

記得看過北大還是清華老師的公開課的時候,老師說,不記得優先順序就用括號(),簡直就是至理名言,搞那麼複雜幹嘛呢,頭髮不要了?裝逼屬性10分?難道不記得初中學數學的時候括號裡面的優先順序高麼。

9樓:趙者也

這是一道考試題。考的是運算子的優先順序

賦值號「+=」優先順序最低,因此先運算5 == 4 的結果,為false,也就是0

然後再運算賦值號,x += 0 最終結果為x也就是說這一大串最終等於x

10樓:智伍應用

賦值符號(=)優先順序很低,所以x += 5 == 4也就是x += (5 == 4),5==4返回false,false相當於0,所以也就是x+=0

在C語言中什麼意思?

男兒本色 在C語言中代表的是取位址符。scanf d a 這代表的是像a這個變數中輸入乙個整型數,我們知道,計算機的資料是放在電腦的儲存單元中的,在變數被建立的時候,在儲存器中就被分配了一定的儲存空間,這時我們在給這個變數賦值的時候就是往這個儲存空間中放數值,也就是直接將數值寫到這個空間中,a就代表...

C語言中 aPtr 是什麼意思?其中aPtr是變數a的指標。?

MHY 如果把每個記憶體單元比作乙個房間,那麼它們的位址就是門牌號。指標變數中儲存的是其他變數的位址,即房間內存放的是其他房間的門牌號。例如有變數int a 2,其位址為0x402000,則a代表a的內容,為2 a代表取a的位址,為0x402000 定義指標int p a,則p的內容是a的位址0x4...

程式語言中的 組合性 是什麼意思?

丁順 在SICP 1.1章,作者說到了乙個強大的程式語言能夠有3個基本的機制 基礎的表示式 primitive expressions 各種組合的方法 means of combination 各種抽象的方法 means of abstraction 而一般每乙個抽象的方法都有對應的組合的方法來把他...