关于for循环的初始化
#include<stdio.h>int main()
{
int i=1,j=1;
for(;i<=5;i++){
for(;j<=i;j++){
printf("*");
}
printf("\n");
}
return 0;
}
{
int i,j;
for(i=1;i<=5;i++){
for(j=1;j<=i;j++){
printf("*");
}
printf("\n");
}
return 0;
}
这两段代码有啥不一样嘛?感觉就是初始化的位置不同啊,可是打印出来是结果一个是只有一列,一个是三角形啊,问题出在哪里啊?
帮帮忙啊各位大佬_(:з」∠)_(编译器Devcpp) #include<stdio.h>
int main()
{
int i=1,j=1;
for(;i<=5;i++){
for(;j<=i;j++){//在这里,j的值在执行完后都会自增1
printf("*");
}
printf("\n");
}
return 0;
}
{
int i,j;
for(i=1;i<=5;i++){
for(j=1;j<=i;j++){//在这里,j的值每一次都变为1,自增几乎没有作用
printf("*");
}
printf("\n");
}
return 0;
} 调试一下,就知道了,第二个代码,执行第二次循环,j初始都为1,
而第一个,第二次循环,j为上一次的j 第一个代码中的i和j不是局部变量,第二个中的i和j是局部变量 J并没有自增
页:
[1]