关于C语言结构体的问题,为什么会报这种错
这是我写的C语言的一个小程序,我是想先定义一个结构体的数组,这个数组有5个元素,然后从第一个元素开始,一个一个赋值,但是为什么会有这种提示啊?也灭看到有缺少的大括号和分号...
这是我写的C语言的一个小程序,我是想先定义一个结构体的数组,这个数组有5个元素,然后从第一个元素开始,一个一个赋值,但是为什么会有这种提示啊?也灭看到有缺少的大括号和分号什么的啊。
展开
1个回答
展开全部
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]=……这就很麻烦了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询