结构体 这样运行不了
#include <stdio.h>
typedef struct info{
int num;
int age;
char *clock;
}info;
typedef struct good{
info b[3];
}good;
void main()
{
good a;
a.b[0]={1,1,"9:00"};
printf("%d\n%d\n%s\n",a.b[0].num,a.b[0].age,a.b[0].clock);
}
为什么不能运行,错误不会改啊!!!
[解决办法]
#include <stdio.h>
typedef struct info{
int num;
int age;
char *clock;
}info;
typedef struct good{
info b[3];
}good;
void main()
{
good a;
info temp={1,1,"9:00"};
a.b[0]=temp;
//a.b[0]={1,1,"9:00"};
printf("%d\n%d\n%s\n",a.b[0].num,a.b[0].age,a.b[0].clock);
}
void main()
{
good a = {{1,1,"9:00"}};
//a.b[0]={1,1,"9:00"};
printf("%d\n%d\n%s\n",a.b[0].num,a.b[0].age,a.b[0].clock);
}
//结构体声明后,对结构体是不能再进行初始化的。只能一个一个赋值
good a;
a.b[0].num = 1;
a.b[0].age = 2;
a.b[0].clock = "9:00";
//或是这样,在声明的时候进行初始化
good a = {{1,1,"9:00"}};
与之间就可以了
void main()
{
good a;
a.b[0]={1,1,"9:00"};//这个只能在初始化时才能这样赋值。
printf("%d\n%d\n%s\n",a.b[0].num,a.b[0].age,a.b[0].clock);
}