coura 发表于 2021-10-7 10:10:26

《带你学C带你飞第一季》S1E16拾遗课后作业

a = (b = 3, 4, c = b++ + 5, ++c + ++b),我有疑问,运算顺序我有点迷糊,逗号运算符从左到右
b = 3。4没有用。 c = 3 + 1 + 5 = 9。 最后a = 10 + 4 = 14。
那么为什么b = 5呢??

大马强 发表于 2021-10-7 10:39:27

答案解析也说过了 赋值运算符的优先级比逗号运算符高]
b赋值为3就不会再去赋值成4了
c = 3++ + 5 = > 3 + 5 =8
a = ++8 + ++4 => 9 + 5 = 14
b用了两次 ++ 所以是 5
c 用了一次 ++ 所以是 9

coura 发表于 2021-10-7 11:04:33

大马强 发表于 2021-10-7 10:39
答案解析也说过了
b赋值为3就不会再去赋值成4了
c = 3++ + 5 = > 3 + 5 =8


谢谢,我自增那里迷糊了,哈哈哈,还以为c=3(b的值) + 1(++) + 5。原来是b++是先赋值再自身+1,而++b表示不管三七二十一,先自身+1,然后赋值,所以才有当c=8,b=4时,a=(8+1) + (4+1) = 14。
谢谢谢谢!{:5_92:}
页: [1]
查看完整版本: 《带你学C带你飞第一季》S1E16拾遗课后作业