鱼C论坛

 找回密码
 立即注册
查看: 1854|回复: 3

[已解决]C++自增问题

[复制链接]
发表于 2021-3-27 20:45:53 | 显示全部楼层 |阅读模式

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

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

x
int i=1,j;  
则表达式i++||i++||i++的值为1(真),
运算结束后,为什么变量i的值为2,而不是4?
最佳答案
2021-3-27 21:06:52
嗯,抱歉,上面说的不对
还记得逻辑运算符的短路操作吗?
|| 运算符如果第一个数就是true,那就不会再执行后面的判断了
也就是这个表达式实际就++了一次
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-27 21:03:21 | 显示全部楼层
这样的表达式,不符合标准,标准没有规定最后的结果是什么,编译器的设计者可以随意发挥,也就是说,不同的编译器很有可能结果不一样
你可以找几个不同的编译器试试看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-27 21:06:52 | 显示全部楼层    本楼为最佳答案   
嗯,抱歉,上面说的不对
还记得逻辑运算符的短路操作吗?
|| 运算符如果第一个数就是true,那就不会再执行后面的判断了
也就是这个表达式实际就++了一次
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-27 21:13:47 | 显示全部楼层
因为这是或逻辑,i++是真,i=2;所以整个句子是真,后的两次i++都不会再执行,因此i不会变成4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-9 16:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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