弹弓靶箱牛人制作图解:编程问题????

来源:百度文库 编辑:高校问答 时间:2024/04/29 20:29:49
main()
{int i;
char s[][5]={"abc","def","ghi","jkl"};
for(i=1;i++<3;)
printf("%s",s[i]);}结果怎么是ghijkl,而不是defdefghi

FOR循环中,首先先做I=1赋值操作,然后判断I<3,做完判断后再作I++,这时I=2,因此,结果为ghijkl,

for(i=1;i++<3;) //变量i在与3比较时,分别取值为1,2,3(当3时条件不成立)
printf("%s",s[i]);}//因为上面有个i++,所以变量i在这里运算时分别取值为2,3

循环完成后,i的值应该为4(因为当i取3时条件不成立,但那个i++还是要被执行的)

注:for(i=1;i++<3;)和for(i=1;i<3;i++)是不一样的

别忘了,在第一次循环之前就会先判断一次 i++<3,而不是等到首次循环之后才判断。

FOR循环中,首先先做I=1赋值操作,然后判断I<3,做完判断后再作I++,这时I=2,因此,结果为ghijkl,