在刷题时踩了个坑,记录一下
for循环变量初始化的一般方法:
int i;
for(i=0;;)
//或for(int i=0;;),前者i在主函数中定义,后者i是一个局部变量,在for外不能使用
也可以使用如下方法:
int i=0;
for(i;;)
这两种方法都可以,但是在使用多重循环的时候,第二种方法可能会有问题。先看第一种方法:
int i,j;
for(i=0;;)
for(j=0;;)
再看第二种方法(错误)
int i=0,j=0;
for(i;;)
for(j;;)
那么这种方法错在哪里呢?让我们看看一下经过修改后的代码:
int i=0;
for(i;;){
int j=0;
for(j;;)
}
有发现这两段代码的区别吗?
这两个代码的区别在于j=0的位置,在第一个代码中,j=0只能对内层循环初始化一次,这就是错误的原因。
在编写中建议使用以下代码,以防忘记,或者养成尽量不省大括号的习惯
int i;
for(i=0;;)
//或for(int i=0;;)