++i和i++输出结果一致
答案:6 悬赏:20 手机版
解决时间 2021-02-25 02:46
- 提问者网友:棒棒糖
- 2021-02-24 09:32
#include
void main ()
{
int i,sum=0;
scanf("%d",&i);
while(i<=5)
{
sum=sum+i;
i++; 此处输入++i 输出结果为什么一样
}
printf("sum=%d\n",sum);
}
sum=0,
sum=sum+i
1 = 0+1 i++ i=1 运算后i=2
3 = 1+2 i++ i=2 以此类推
6 = 3+3 i++ i=3
10 = 6+4 i++ i=4
15=10+5 i++ i=5
2= 0+2 ++i i=1 先自+1=2
5 = 2+3 ++i i=2 先自+1=3
9= 5+4 ++i i=3 先自+1=4
14 = 9+5 ++i i=4 先自+1=5
20=14+6 ++i i=5 先自+1=6
最佳答案
- 五星知识达人网友:痴妹与他
- 2021-02-24 10:54
sum=sum+i;
i++; 此处输入++i 输出结果为什么一样
自顶向下运算
i++;
sum=sum+i; 这样就得出
2= 0+2 ++i i=1 先自+1=2
5 = 2+3 ++i i=2 先自+1=3
9= 5+4 ++i i=3 先自+1=4
14 = 9+5 ++i i=4 先自+1=5
20=14+6 ++i i=5 先自+1=6
全部回答
- 1楼网友:老鼠爱大米
- 2021-02-24 14:21
i++; 和++i;的作用一样,就是将i的值加1.
但是如果除了++之外还有别的运算符的话就要考虑先加厚加的问题了。
例如:
y=i++;
先将i的值赋值给y,再将i的值加1.
y=++i;
先将i的值加1,再将i的值赋值给y。
- 2楼网友:七十二街
- 2021-02-24 13:50
不管是前置++还是后置++,操作数都自增1,,只有当赋值的时候才会出现差别。你这里的i没有复制给别的变量
- 3楼网友:胯下狙击手
- 2021-02-24 12:33
结果一样,运行机制貌似有差别
while(i<=5)
{
sum=sum+i;
i++; // i=i; i=i+1;
}
while(i<=5)
{
sum=sum+i;
++i; // i=i+1;
}
最后i 都等于i+1 所以效果是一样的瑟
- 5楼网友:冷風如刀
- 2021-02-24 11:00
你这样看,i=0;a=i++;和
i=0;b=++i;
两种情况 最后i的值都为1,但是a的值为0,b的值为1
因为系统先将i的值赋给a,然后i自加。
第二语句是,i先自加,然后赋给b。 看出来不同了吧。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯