鱼cpython学习者 发表于 2021-9-11 15:45:16

递增后的值

c++,这一句语句运行后x的值是什么
x = 2 * x++ * (3 - ++x)
请拆一下这句语句运行的顺序,谢谢

Mondayisgood 发表于 2021-9-11 17:21:51

2021年9月11日17:20:31
这种 代码 实际 是 不给 写的
一般 只用于 学习
如果 一定 要 知道 可以 编译 汇编 .o文件 看 里面 干了 啥

jhq999 发表于 2021-9-11 17:38:10

如果x的赋值值是1
x = 2 * x++ * (3 - ++x)
x=2*1*(3-3)=0;

大马强 发表于 2021-9-11 21:25:31

jhq999 发表于 2021-9-11 17:38
如果x的赋值值是1
x = 2 * x++ * (3 - ++x)
x=2*1*(3-3)=0;

请问下,如果是0咋说

人造人 发表于 2021-9-11 23:25:13

不同的编译器一般会给出不同的结果,因为这样的代码确实不知道该怎么算
有的编译器先 ++,有的编译器先取值

main.c:5:7: warning: operation on ‘x’ may be undefined [-Wsequence-point]
    5 |   x = 2 * x++ * (3 - ++x);
      |   ~~^~~~~~~~~~~~~~~~~~~~~
main.c:5:7: warning: operation on ‘x’ may be undefined [-Wsequence-point]

jhq999 发表于 2021-9-12 11:13:36

本帖最后由 jhq999 于 2021-9-12 11:24 编辑

大马强 发表于 2021-9-11 21:25
请问下,如果是0咋说

不管x=0,x=1我这个vs都得5,懵比中……
c里面优先级不是()括号是第一优先级吗?怎么可能出现奇数结果?
现在想想莫名其妙的熟悉……{:5_109:}
页: [1]
查看完整版本: 递增后的值