鱼C论坛

 找回密码
 立即注册
查看: 2491|回复: 6

自增、自减运算符求助

[复制链接]
发表于 2012-6-6 16:59:34 | 显示全部楼层 |阅读模式

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

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

x
void main()
{
  int i=5,j=5,p,q;
  p=(i++)+(i++)+(i++);
  q=(++j)+(++j)+(++j);
  printf("%d,%d,%d,%d",p,q,i,j);
}
为什么q=22?  不是21吗??
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-6-6 17:54:51 | 显示全部楼层
q=7+7+8     运算顺序是((++j)+(++j))+(++j)
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-6-6 17:57:40 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-6-6 18:20:22 | 显示全部楼层
我的就更怪异了,答案是15,24,8,8!我用的是vs2008
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-6-6 23:49:11 | 显示全部楼层
谢了{:1_1:}{:1_1:}{:1_1:}
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-6-7 16:52:27 | 显示全部楼层
编译器的优化问题 无需深究 想深究的话 可以反汇编看看
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-6-7 17:17:06 | 显示全部楼层
这个是因为C语言优化的结果,它先把前两位的同时J++,然后再计算最后一个,所以答案是21.
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-11-13 16:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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