关于scanf输入到结构体中时不用&的问题

有一个结构体
struct student
{
long num;
char name[20];
}zhao;
输入数据时是这样:
scanf("%s",zhao.name); //这里为什么没有&了?

scanf这个函数要求使用变量的地址,而变量name是一个数组,数组的名字代表了数组的地址,所以不用使用&这个取地址的操作符了

这个和结构体没有关系,单独一个数组在这种情况下也不需要&

图片说明那这个成绩也是数组为啥它就加取地址符号啊?

数组名会被解释为指针但是具体的a[3]应该是表示值的吧大概

这里学习的时候可能有一点歧义,zhao.name存储的是字符串,所以它是一个数组,而不是一个变量,而数组名是相当于一个指针可以直接当做地址.