求解 希望来个大神详细解读一下
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)。 感觉好乱好乱,不知道你们看明白了没?再补充一下吧,就是说为什么sum=1+2+3+……而不是直接替换sum=sum+i里面的i 无语,自己脑袋短路了,见笑了,不过还是希望有人来详细解释一下 i++ 和++i的问题。 简单的来说,++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++ 这样的混合运算
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; 后面,代码是顺序执行的
页:
[1]