关于C语言结构体的问题,为什么会报这种错

这是我写的C语言的一个小程序,我是想先定义一个结构体的数组,这个数组有5个元素,然后从第一个元素开始,一个一个赋值,但是为什么会有这种提示啊?也灭看到有缺少的大括号和分号... 这是我写的C语言的一个小程序,我是想先定义一个结构体的数组,这个数组有5个元素,然后从第一个元素开始,一个一个赋值,但是为什么会有这种提示啊?也灭看到有缺少的大括号和分号什么的啊。 展开
 我来答
White_MouseYBZ
2018-09-17 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6244万
展开全部
stu是个数组,那么stu[1]就是数组的一个元素,相当于struct xinxi t;,你再给t用t={ddd,ddd,xxx}这种方式赋值是非法的,只有在声明数组时统一初始化才行。写成struct xinxi stu[5]={{},{},{},{},{}};形式就行了。外{}里的一个{}中的内容就是你写的stu[1]=的等号右边的内容,你可以只给前1个或1个以上的{}中写对应的内容,后面的就自动被赋空或0了,但不能隔着赋值(如赋1、3两个把2空着那不行)。
追问
那如果我要是不再定义的时候初始化,就是想要再定义之后一个一个的赋值,应该怎么做?
追答
就这么做——
stu[1].name[0]='Z';stu[1].name[1]='h';stu[1].name[2]='a';或者strcpy(stu[1].name,"Zha");或者scanf("%s",stu[1].name);——这个要从键盘输入了……stu[1].numbr[0]='c';……stu[2].name[0]=……这就很麻烦了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式