这是错误语句,应该是for(i=1;i<=100;i--)。
首先要说明,当i被声明为int型时,它不会循环不停,只是循环次数很多,但最后还是会停下来。由于for(i=1;i<=100;i--)中当i<=100时继续循环,而i的初值是1,<=100为“真”,进入循环;然后i--使i的值减1为0,<=100仍为“真”,也循环;i==-1、-2、-3……情况也仍能使i<=100为“真”,所以会继续循环……但是,计算机能表示的值是有范围的,当i减小到int能表达的最小值时会产生溢出突然变为一个很大的正数,这时i<=100不再成立,就会停止循环!
这是一段for循环内嵌函数调用
给你一段这样的代码
你应该能够看到时什么效果
#include
int
add(int
y,int
i)
{
return
y+i;
}
int
main()
{
int
i,y;
for(y=0,i=1;
i<=5;i++
)
y
=
add(y,i);
printf("%d",y);
getch();
return
0;
}
最后
你会看到屏幕上输出的结果是15
1
for(A;B;C)
表示:
1.预处理A语句,在A中的语句会在for的最开始执行。
2.当满足B表达式的值为false时跳出。
3.每次循环结尾执行C语句,然后判断B。
所以
1
for(i=1;i
表示给i的初值赋值为1.
当i100的时候退出。
每次循环结尾执行i--也就是i=i-1,将i的值减少1.
如果你的i是一个整型变量的话...一直执行i减少1,是永远不会达到i>100的。
也就是会死循环。