注册 登录
编程论坛 C语言论坛

一个结构和一个数组的小问题。

三尺冰 发布于 2019-11-06 23:37, 1567 次点击
大家好,我想请教一下:
    1.
程序代码:
typedef struct
{
   char name[9];
   int age;
}Student;

Student stu[10] = { {"Lisa", 18}, {"Mike", 19} };
printf("second name: %s\n", stu[1].name);   //为什么用&stu[1].name也没错。
   
   
    2.一维数组初始化时可以省略数组下标吗?
2 回复
#2
rjsp2019-11-06 23:53
char name[9];

name 可隐式转化为 char*
&name 的类型是 char (*)[9]
它们的类型不同,值相同
而printf这种可变参数的函数擦除了参数类型,全由第一参数指定,故而加&也能运行正确,只是逻辑上讲不通。
#3
三尺冰2019-11-08 23:29
好的,谢谢
1