搞不懂定义结构体变量时要在for里面定义,或者在main函数的开始时定义,不能在for的外面定义,否则不能通过编译,这是为什么?
因为,变量声明必须在函数或块的顶部,在执行了print后,c语言就不许可声明变量了
看下你的错误信息,按理说放外面放里面都可以。
里面外面都可以的,你把错误信息也发出来
都是可以的,并且你把结构体定义放到for里面,那么a的作用于就只能是for语句块了,这样程序跳出循环之后a就没有了。
因为你写的是C,C新标准推行的比较慢
一般声明,必须写在语句组的开头
不应该啊,应该里面外面都可以的
我测试了下,都可以编译
#include <stdio.h>
struct player
{
int num;
};
int main()
{
int s = 0;
printf("*");
struct player a[20];
for (s = 0; s < 2; s++)
{
scanf("%d", &s);
switch (s)
{
case 0: a[0].num = 3; break;
case 1: a[1].num = 3; break;
default: break;
}
}
return 0;
}
#include <stdio.h>
struct player
{
int num;
};
int main()
{
int s = 0;
printf("*");
for (s = 0; s < 2; s++)
{
struct player a[20];
scanf("%d", &s);
switch (s)
{
case 0: a[0].num = 3; break;
case 1: a[1].num = 3; break;
default: break;
}
}
return 0;
}