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

这是我写的C语言的一个小程序,我是想先定义一个结构体的数组,这个数组有5个元素,然后从第一个元素开始,一个一个赋值,但是为什么会有这种提示啊?也灭看到有缺少的大括号和分号什么的啊。

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]=……这就很麻烦了。

温馨提示:答案为网友推荐,仅供参考
相似回答