鱼C论坛

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

为什么计算结果不是24

[复制链接]
发表于 2021-8-26 22:00:30 | 显示全部楼层 |阅读模式

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

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

x
#include<stdio.h>
void main()
{
        int i = 5, q;
        q = (++i)+(++i)+(++i);               
        printf("q=%d,i=%d\n",q,i);
}

如题,按照逻辑计算不应该是24么,怎么跑出来是22?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-27 17:49:53 | 显示全部楼层
本人用2019是24,版本不一样,结果不一样。
i5+ 1 = i6
i6 + 1= i7;  i7赋给i6, i6是i7,(i7 + i7 = 14)
i7 + 1 = i8; (14 + i8 == 22)
个人认为,本人初学者。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-27 18:02:28 | 显示全部楼层
编译器不同不一定一样
纠结这个没什么意义
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-29 19:40:08 | 显示全部楼层
q = (++i)+(++i)+(++i);
三个++i执行顺序是不一定的,所以结果未定义
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 16:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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