作者ac01965159 (leeleo)
看板C_and_CPP
標題[問題] 關於c的運算元優先權問題
時間Mon Jun 8 00:10:37 2020
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://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1591546239.A.059.html
1F:→ tomsawyer: 參考置頂13戒的第8戒 06/08 00:31
2F:→ ac01965159: 剛剛有看過第八戒了,雖然可能是我理解錯,不過他那 06/08 00:41
3F:→ ac01965159: 篇好像是在說一個expression中對同一個變數做++的問 06/08 00:41
4F:→ ac01965159: 題 06/08 00:41
5F:→ ac01965159: 看過了之後還是不知道為什麼qq 06/08 00:42
6F:推 Dracarys: postfix increment 06/08 00:44
7F:→ Dracarys: 他的確是先「加一」了 06/08 00:44
8F:推 Dracarys: 你把他可以想成一個function 先複製a到一個local varia 06/08 00:47
9F:→ Dracarys: ble再執行prefix increment (++a) 再return那個local v 06/08 00:47
10F:→ Dracarys: ariable 06/08 00:47
11F:→ ac01965159: 感謝,不過不太了解為什麼b=++a就不會有這種先複製到 06/08 02:01
12F:→ ac01965159: local variable的情形呢? 06/08 02:01
13F:→ Dracarys: 因為規定?可能要觀落櫻問Dennis Ritchie 06/08 07:27
14F:→ sarafciel: 因為他本來的定義就是那樣 06/08 09:43
15F:→ sarafciel: 優先權、回傳值跟運算元的最終值是三件事 06/08 09:45
16F:→ SaberZ7: 為什麼要這樣寫我覺得比較重要。 06/08 10:26
17F:推 Jekk: a++ --> 整個式子運算完以後 a=a+1 06/11 01:15
18F:→ Jekk: ++a --> 先a=a+1以後再運算整個式子 06/11 01:16