#include <stdio.h>
int main(void) {
int i = 0;
int j = 0;
for (; i < 2; i++)
for ( ; j < 2; j++)
printf("hello\n");
return 0;
}
运行结果:
hello
hello
#include <stdio.h>
int main(void) {
int i = 0;
int j = 0;
for (; i < 2; i++) {
j = 0;
for ( ; j < 2; j++)
printf("hello\n");
}
return 0;
}
运行结果:
hello
hello
hello
hello
为什么运行结果不一样?
第二个代码,每次内循环前都会将j设置为0
第一个代码则不会,因此,只有第一次外循环,会执行内循环,第二次开始的外循环,j=2,内循环不执行
j的作用域 你是在for循环之前定义的 所以其在整个mian函数中都可以调用
第一个程序j在第一次循环从0变为2 输出俩个hello 第二次循环j 还是2 所以直接跳出循环
第二个程序 在第二次循环的时候 j又重新变为0 则继续循环下面的for 函数