作者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/cn.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