看板 C_and_CPP 關於我們 聯絡資訊
https://i.imgur.com/63HAVsW.jpg
這是我在網路上找到的優先權表,因為++的優先權比=還高 所以如果假設一個變數a=0,那讓b=a++ 結果卻是b為0,可是如果看優先權的話不是應該要a先+1的嗎? 先謝謝各位。 ---- Sent from BePTT on my ASUS_Z01RD -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 124.9.130.27 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1591546239.A.059.html
tomsawyer: 參考置頂13戒的第8戒 06/08 00:31
ac01965159: 剛剛有看過第八戒了,雖然可能是我理解錯,不過他那 06/08 00:41
ac01965159: 篇好像是在說一個expression中對同一個變數做++的問 06/08 00:41
ac01965159: 題 06/08 00:41
ac01965159: 看過了之後還是不知道為什麼qq 06/08 00:42
Dracarys: postfix increment 06/08 00:44
Dracarys: 他的確是先「加一」了 06/08 00:44
Dracarys: 你把他可以想成一個function 先複製a到一個local varia 06/08 00:47
Dracarys: ble再執行prefix increment (++a) 再return那個local v 06/08 00:47
Dracarys: ariable 06/08 00:47
ac01965159: 感謝,不過不太了解為什麼b=++a就不會有這種先複製到 06/08 02:01
ac01965159: local variable的情形呢? 06/08 02:01
Dracarys: 因為規定?可能要觀落櫻問Dennis Ritchie 06/08 07:27
sarafciel: 因為他本來的定義就是那樣 06/08 09:43
sarafciel: 優先權、回傳值跟運算元的最終值是三件事 06/08 09:45
SaberZ7: 為什麼要這樣寫我覺得比較重要。 06/08 10:26
Jekk: a++ --> 整個式子運算完以後 a=a+1 06/11 01:15
Jekk: ++a --> 先a=a+1以後再運算整個式子 06/11 01:16