我定义了一个结构体 typedef struct { int id; char name[20]; float score;} stu;;然后我给他取个别名 stu STU .当我在用printf打印时 ,我认为第二个参数应该是 *(STU.name)可是实际上是STU.name,name不是指针吗?
时间: 2024-01-06 20:04:13 浏览: 108
在结构体中,name 是一个字符数组,它本身就是一个指针,指向字符数组的首地址。因此,当你使用 STU.name 时,实际上是取得了 name 数组的首地址,而不是字符数组的第一个元素。因此,你应该使用 STU.name 来输出 name 字符数组的值,而不是 *(STU.name)。例如:
```
printf("%s", STU.name);
```
相关问题
请解释一下 typedef struct //定义学生结构体 { int num; char name[5]; char sex[5]; struct { int year[4]; int month[2]; int day[2]; }Date; char college[10]; char clas[10]; int phone[20]; } stu;
这段代码定义了一个名为`stu`的结构体类型,表示学生的信息。结构体中包含了以下成员:
- `num`:学生的学号,类型为整数。
- `name`:学生的姓名,类型为字符数组,长度为5。
- `sex`:学生的性别,类型为字符数组,长度为5。
- `Date`:学生的出生日期,是一个嵌套的结构体。它包含了以下成员:
- `year`:出生年份,类型为整型数组,长度为4。
- `month`:出生月份,类型为整型数组,长度为2。
- `day`:出生日期,类型为整型数组,长度为2。
- `college`:学生所在学院的名称,类型为字符数组,长度为10。
- `clas`:学生所在班级的名称,类型为字符数组,长度为10。
- `phone`:学生的电话号码,类型为整型数组,长度为20。
通过使用这个结构体类型,可以创建具有上述成员的学生实例,并访问或修改它们的值。
typedef struct STU { char name[20]; int age; char sex; char num[20]; }stu[10];
这是一个定义了一个名为 `STU` 的结构体,其中包含了四个成员变量:`name`、`age`、`sex` 和 `num`。每个成员变量的类型分别是 `char[20]`、`int`、`char` 和 `char[20]`。这个结构体的别名是 `stu`,它是一个包含 10 个 `STU` 类型元素的数组。
这个结构体的意义可能是用来表示某个学校的学生信息,其中每个元素代表一个学生的信息,包括姓名、年龄、性别和学号。
阅读全文