永发信息网

关于i++和++i的问题

答案:2  悬赏:60  手机版
解决时间 2021-04-26 02:31
  • 提问者网友:藍了天白赴美
  • 2021-04-25 22:21

一直搞不大明白i++和++i的区别,请各位大神帮帮忙解答一下

一个程序如下

#include "stdio.h"
void main()
{
 int i=1,iSum=0;
 while(i<=10)
 {
  iSum=iSum+i;
  i++;
 }
 printf("\n 1+2+3+...+10= %d\n",iSum);
   
}
如果把第八行的i++换成++i,输出的结果会有怎样的变化呢?

最佳答案
  • 五星知识达人网友:刀戟声无边
  • 2021-04-25 23:09
举个例子:
int m=0, n = 0, x = 1, y = 1;
m = x++;    //先取x的值给m,然后x加1,m = 1, x = 2;
n = ++y;  //先y加1,然后再把y的值赋给n,n = 2, j =2;

好了,现在看看你的代码:
第八行代码不管是 ++i 还是 i++,结果都是一样,因为while判断的都只是 i 自加后的值,而且这个 i 没有和任何变量有联系!
如上面例子里的 x和 y ,你取得都是 i 自加后的值。

//iSum = 1 + 2 +3 + ......+10;
int j = 0, i = 1, iSum = 0;
while(i<=10){
    j = i++;// i = 1,j=1 ...... i = 10, j =10;
    iSum = iSum + j;
}
//iSum = 2 +3 + ......+11;
int j = 0, i = 1, iSum = 0;

while(i<=10){

    j = ++i;// i = 1,j=2 ...... i = 10, j =11;

    iSum = iSum + j;

}

全部回答
  • 1楼网友:洒脱疯子
  • 2021-04-26 00:15
i++是先赋值再做+1的运算,而++i是先做+1的运算再把值赋出去,而你所举的那个例子是什么语言呢
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯