递增后的值
c++,这一句语句运行后x的值是什么x = 2 * x++ * (3 - ++x)
请拆一下这句语句运行的顺序,谢谢 2021年9月11日17:20:31
这种 代码 实际 是 不给 写的
一般 只用于 学习
如果 一定 要 知道 可以 编译 汇编 .o文件 看 里面 干了 啥 如果x的赋值值是1
x = 2 * x++ * (3 - ++x)
x=2*1*(3-3)=0; jhq999 发表于 2021-9-11 17:38
如果x的赋值值是1
x = 2 * x++ * (3 - ++x)
x=2*1*(3-3)=0;
请问下,如果是0咋说 不同的编译器一般会给出不同的结果,因为这样的代码确实不知道该怎么算
有的编译器先 ++,有的编译器先取值
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:24 编辑
大马强 发表于 2021-9-11 21:25
请问下,如果是0咋说
不管x=0,x=1我这个vs都得5,懵比中……
c里面优先级不是()括号是第一优先级吗?怎么可能出现奇数结果?
现在想想莫名其妙的熟悉……{:5_109:}
页:
[1]