C语言自增自减,在for循环里面计算啊?++x与x++两个for(i=0;i<3;i++)与for
C语言自增自减,在for循环里面计算啊?++x与x++两个for(i=0;i<3;i++)与for(i=0;i<3;++i)在循环里,i的值分别为多少?...
C语言自增自减,在for循环里面计算啊?++x与x++两个for(i=0;i<3;i++)与for(i=0;i<3;++i)在循环里,i的值分别为多少?
展开
3个回答
展开全部
for(i=0;i<3;i++) {}的意思是:
int i=0;
while(i<3){
.....
i++;
}
for(i=0;i<3;++i){}的意思是:
int i=0;
while(i<3){
......
++i;
}
所以答案都是 0,1,2,3(i=3时跳出循环)
++i是先加后用,i++是先用后加。
但是如果他们都没有在使用该语句时没被使用。
过后,他们的值是一样的,有没有发现
i=0
++i;
int a=i; => a=1; i=1;
i=0;
i++;
int a=i; => a=1; i=1;
如何才让他们不同呢;
i=0;
int a=++i; => a=1; i=1;
i=0;
int a=i++; => a=0; i=1;
int i=0;
while(i<3){
.....
i++;
}
for(i=0;i<3;++i){}的意思是:
int i=0;
while(i<3){
......
++i;
}
所以答案都是 0,1,2,3(i=3时跳出循环)
++i是先加后用,i++是先用后加。
但是如果他们都没有在使用该语句时没被使用。
过后,他们的值是一样的,有没有发现
i=0
++i;
int a=i; => a=1; i=1;
i=0;
i++;
int a=i; => a=1; i=1;
如何才让他们不同呢;
i=0;
int a=++i; => a=1; i=1;
i=0;
int a=i++; => a=0; i=1;
更多追问追答
追问
还是没懂……我知道一个是先加够用,一个是先用后加,但是不知道怎么用,感觉都是一样的……还能在举几个比较好懂得例子吗?
追答
int i=0;
printf("%d ",i++);
printf("%d",i);
结果是 0,1
int i=1;
printf("%d ",++i);
printf("%d",i);
结果是 1,1
int a,b;
a=0;
b=++a; //先加后赋值给b(先加后用)
//b=1,a=1;
a=0;
b=a++; //先赋值给b再进行自加(先用后加)
//b=0,a=1;
展开全部
其实这两种写法是等价的
for(表达式1;表达式2;表达式3){}
如果把表达式3弄到循环里面
for(表达式1;表达式2;;){
………………
………………//原本for里的代码
表达式3;
}
可以看出
就只有一句话的时候,i++ 和 ++i没有区别
都等效于i=i+1
除非表达式3是个逗号表达式,才有区别
更多追问追答
追问
逗号表达式才有区别?能细讲讲吗?
追答
其实不一定非要都好表达式,主要看表达式3
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
++x先加1再运算,x++先运算再加1
for(i=0;i<3;i++)与for(i=0;i<3;++i)这两个循环是一样的。
for(i=0;i<3;i++)与for(i=0;i<3;++i)这两个循环是一样的。
追问
为啥啊?不是一个先加后用,一个先用后加吗?怎么会一样呢?我就这点不懂~
追答
做为循环的计数器,它们已经在for()这一行完成任务。
i++执行完for()后要加1,到了循环体内已经加1,++i先加1再到循环体,所以是一样的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询