永发信息网

++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
结果一样,运行机制貌似有差别
  • 4楼网友:毛毛
  • 2021-02-24 11:38
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。 看出来不同了吧。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯