结构体 这样运行不了
#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"}};
[解决办法]
一个一个的去赋值
[解决办法]
不是什么软件,把你的代码放在
与之间就可以了
[解决办法]
a.b[0].num = 1;
a.b[0].age = 1;
a.b[0].clock = "9:00";
[解决办法]
+1
[解决办法]
+1
[解决办法]
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);
}
[解决办法]
“变量赋值”和“变量初始化”不是一回事!
“变量赋值”发生在运行期,其写法遵循赋值语法规定。
“变量初始化”发生在编译期或运行期,其写法遵循初始化列表语法规定。