C语言中for循环的一些坑,来看看运行结果吧!

it2024-11-23  17

1.来看这么一段代码

代码如下:

#include<stdio.h> int main() { for( ; ; ) { printf("hello\n"); } return 0; }

这里省略了for循环的初始化,判断以及调整 运行结果是什么呢?

运行发现是死循环,一直打印输出hello 这里就要注意:如果for循环的判断部分被省略,那判断的条件就是:恒为正,也就是一直执行下去。

2.

#include<stdio.h> int main() { int i=0; int j=0; for( ;i<10;i++ ) { for( ;j<10;j++) { printf("hello\n"); } } return 0; }

这里省略了初始化

如果不省略则输出100个hello这毋庸置疑 如果省略了运行发现输出的却是10个hello,这又是为什么? 具体执行过程:

1.外层for循环进来执行内层for循环j从0一直到9,输出10条hello

2.当j=10时结束

3.再从外层判断进入内层循环,由于j在for循环外定义的,并未销毁,所以j仍然为10,内层循环一直不满足条件,因此再次进来时,并不会执行内层循环语句。最终只有10条hello(建议不要随便省略,可能会引起代码出现意想不到的错误!)

最新回复(0)