c语言关于结构体的问题

img

a[i]和id[20]不重合吗?,scores是列表吗?,如果是为什么有&符号?

a是stu数组,id是数组内的成员,哪有重合之说啊
a[i]就是第i个学生的信息,id只是某个学生信息中的学号
另外代码里只有score成员,哪有scores啊?
scanf输入数据时,要求整型、浮点型等常规类型要传入地址信息,而字符串、数组等直接用变量名即可,变量名代表地址

a[i]是取第i个结构体元素
a[i].id是第i个结构体元素的id变量,这是一个字符数组,scanf在读取数据时,直接用a[i].id,因为a[i].id就是id[20]这个字符数组的首地址,所以不用加&符号
a[i].score是第i个结构体元素的score变量,这是一个int类型,scanf在读取数据时,需要用变量的地址,所以写成&a[i].score
a[i].name是第i个结构体元素的name变量,是一个字符数组,scanf在读取数据时,直接用a[i].name,因为a[i].name就是name[20]这个字符数组的首地址,所以不用加&符号。

a[i]和id[20]不会重合的,scores是int型变量。scanf()函数读取字符串时,字符串变量是不需要&符号的,其他的可以百度下scanf()函数的详细用法。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632