鱼C论坛

 找回密码
 立即注册
查看: 1060|回复: 5

[已解决]递增后的值

[复制链接]
发表于 2021-9-11 15:45:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
c++,这一句语句运行后x的值是什么
x = 2 * x++ * (3 - ++x)
请拆一下这句语句运行的顺序,谢谢
最佳答案
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]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-11 17:21:51 | 显示全部楼层
2021年9月11日17:20:31
这种 代码 实际 是 不给 写的
一般 只用于 学习
如果 一定 要 知道 可以 编译 汇编 .o  文件 看 里面 干了 啥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-11 17:38:10 | 显示全部楼层
如果x的赋值值是1
x = 2 * x++ * (3 - ++x)
x=2*1*(3-3)=0;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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咋说
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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里面优先级不是()括号是第一优先级吗?怎么可能出现奇数结果?
现在想想莫名其妙的熟悉……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 07:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表