https://i.imgur.com/63HAVsW.jpg
這是我在網路上找到的優先權表,因為++的優先權比=還高
所以如果假設一個變數a=0,那讓b=a++
結果卻是b為0,可是如果看優先權的話不是應該要a先+1的嗎?
先謝謝各位。
剛剛有看過第八戒了,雖然可能是我理解錯,不過他那篇好像是在說一個expression中對同一個變數做++的問題看過了之後還是不知道為什麼qq
作者:
Dracarys (MayShowGunMore)
2020-06-08 00:44:00postfix increment他的確是先「加一」了你把他可以想成一個function 先複製a到一個local variable再執行prefix increment (++a) 再return那個local variable
感謝,不過不太了解為什麼b=++a就不會有這種先複製到local variable的情形呢?
作者:
Dracarys (MayShowGunMore)
2020-06-08 07:27:00因為規定?可能要觀落櫻問Dennis Ritchie
因為他本來的定義就是那樣優先權、回傳值跟運算元的最終值是三件事
作者: SaberZ7 (Sean) 2020-06-08 10:26:00
為什麼要這樣寫我覺得比較重要。
作者:
Jekk (Lestrade)
2020-06-11 01:15:00a++ --> 整個式子運算完以後 a=a+1++a --> 先a=a+1以後再運算整個式子