鱼C论坛

 找回密码
 立即注册
查看: 1309|回复: 4

求解 希望来个大神详细解读一下

[复制链接]
发表于 2014-12-23 15:53:01 | 显示全部楼层 |阅读模式

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

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

x
void main()
{
        int i,sum=0;
        i=1;

loop:   if (i<=100)
           {
        sum=sum+i;
           i++;
                   goto loop;
            }

         printf("%d\n",sum);
}
问题1:i++ ++i区别,详细,越详细越好,最好带几个例子比较一下
问题2:为什么程序运行的时候i++的值会加入到 sum=sum+i后面而不是替换成(sum=sum+i)里面的i,我的意思是为什么是sum=sum+i+(i+1)+(i+1+1)而不是sum=sum+(i+1)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-12-23 15:55:41 | 显示全部楼层
感觉好乱好乱,不知道你们看明白了没?再补充一下吧,就是说为什么sum=1+2+3+……而不是直接替换sum=sum+i里面的i
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-23 16:32:23 | 显示全部楼层
无语,自己脑袋短路了,见笑了,不过还是希望有人来详细解释一下 i++ 和++i的问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-23 16:37:16 | 显示全部楼层
简单的来说,++i 和 i++,在单独使用时,就是 i=i+1。  
而 a = ++i,相当于 i=i+1; a = i;  
而 a = i++,相当于 a = i; i=i+1;

还有,你见过 a+=i++,++i; 吗:lol:
这都是语言的坑,毫无意义的东西,GO语言中,只允许 i++ 单独使用,不允许a = i++ 这样的混合运算
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-25 19:37:12 | 显示全部楼层
i++ 是先使用变量i,然后i加一
++i 是先i加一,然后使用i

例子:当int a, i = 1; 时
a = i++; 执行后 a = 1, i = 2
a = ++i; 执行后 a = 2, i = 2;

至于为什么程序运行的时候i++的值会加入到 sum=sum+i后面,因为i++; 在 sum = sum+i; 后面,代码是顺序执行的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-18 11:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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