关于c语言的结构体的小问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 20:55:43
#include "stdio.h"
void main()
{
int i;
struct student
{
int stunum;
char name;
int birthdate;
char zhuanye;
}stu[2]={{6,"lujian",19861023,"ie"},{4,"luyang",19891208,"jixie"}};
for(i=0;i<4;i++)
printf("%d%s%d%s\n",stu[i].stunum,stu[i].name,stu[i].birthdate,stu[i].zhuanye);
}
提示出现错误,但不知道什么错
为什么要把char name改成char name[]呢,
能否给个解释啊
而且为什么要为name[10],name[3]不行呢

#include <stdio.h>
int main()
{
int i;
struct student
{
int stunum;
char* name; // 改为char*或char name[10]
int birthdate;
char* zhuanye; // 同上
}stu[2]={{6,"lujian",19861023,"ie"},{4,"luyang",19891208,"jixie"}};
for(i=0;i<2;i++) // 这里改成2不然内存溢出
printf("%d%s%d%s\n",stu[i].stunum,stu[i].name,stu[i].birthdate,stu[i].zhuanye);