[問題] 關於c的運算元優先權問題

看板C_and_CPP作者 (leeleo)時間4年前 (2020/06/08 00:10), 編輯推噓3(3015)
留言18則, 6人參與, 4年前最新討論串1/1
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

06/08 00:31, 4年前 , 1F
參考置頂13戒的第8戒
06/08 00:31, 1F

06/08 00:41, 4年前 , 2F
剛剛有看過第八戒了,雖然可能是我理解錯,不過他那
06/08 00:41, 2F

06/08 00:41, 4年前 , 3F
篇好像是在說一個expression中對同一個變數做++的問
06/08 00:41, 3F

06/08 00:41, 4年前 , 4F
06/08 00:41, 4F

06/08 00:42, 4年前 , 5F
看過了之後還是不知道為什麼qq
06/08 00:42, 5F

06/08 00:44, 4年前 , 6F
postfix increment
06/08 00:44, 6F

06/08 00:44, 4年前 , 7F
他的確是先「加一」了
06/08 00:44, 7F

06/08 00:47, 4年前 , 8F
你把他可以想成一個function 先複製a到一個local varia
06/08 00:47, 8F

06/08 00:47, 4年前 , 9F
ble再執行prefix increment (++a) 再return那個local v
06/08 00:47, 9F

06/08 00:47, 4年前 , 10F
ariable
06/08 00:47, 10F

06/08 02:01, 4年前 , 11F
感謝,不過不太了解為什麼b=++a就不會有這種先複製到
06/08 02:01, 11F

06/08 02:01, 4年前 , 12F
local variable的情形呢?
06/08 02:01, 12F

06/08 07:27, 4年前 , 13F
因為規定?可能要觀落櫻問Dennis Ritchie
06/08 07:27, 13F

06/08 09:43, 4年前 , 14F
因為他本來的定義就是那樣
06/08 09:43, 14F

06/08 09:45, 4年前 , 15F
優先權、回傳值跟運算元的最終值是三件事
06/08 09:45, 15F

06/08 10:26, 4年前 , 16F
為什麼要這樣寫我覺得比較重要。
06/08 10:26, 16F

06/11 01:15, 4年前 , 17F
a++ --> 整個式子運算完以後 a=a+1
06/11 01:15, 17F

06/11 01:16, 4年前 , 18F
++a --> 先a=a+1以後再運算整個式子
06/11 01:16, 18F
文章代碼(AID): #1UtH5_1P (C_and_CPP)