求大神c语言中for语句中for(i=0;i!=10;i++)中i的计算顺序

for(i=0;str1[i]!='\0';i++);
for(j=0;i>0;j++,i--)
str2[j]=str1[i-1];
比如上面这段语句(亲测 可以执行),照我的理解,第一次循环中,第一个for循环中的i=0应该持续到复合语句结束才i++,可是str2[j]=str1[i-1];中证明我错了。。。那i++到底是什么时候 ++的???

第1个回答  2014-06-28
int a;
for(i=0;i<10;i++)
{
a=i;

}
先赋值i=0,判断条件是否符合i<10,再执行a=i,最后i++追问

这样的话,str2[j]=str1[i-1] 中的str1[i-1]岂不就是str1[-1]了?

追答

for(i=0;str1[i]!='\0';i++);

你这个循环 i的值已经加了,所以在下面i的值就不是零了。懂?

本回答被提问者采纳
相似回答