鱼C论坛

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

一个小问题,求指导

[复制链接]
发表于 2014-8-18 11:09:11 | 显示全部楼层 |阅读模式

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

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

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

}

代码如上,执行结果为:15,22,8,8

请问“P”和“q”的值是如何算的?

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-8-20 08:53:37 | 显示全部楼层
千寻0 发表于 2014-8-18 19:22
i++是先取i的值再++
++i是先++再取id值

恩,我算出来的是p=5+6+7=18,q=6+7+8=21,一个都没对上呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-22 09:59:45 | 显示全部楼层
千寻0 发表于 2014-8-21 10:55
i++,编译器是先将i的值放到一个寄存器里面,然后计算的结果给p,寄存器再执行++过程,
++j是先把前两个+ ...

谢谢,我学完C语言就学汇编
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-9 03:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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