我定义了一个结构体 typedef struct { int id; char name[20]; float score;} stu;;然后我给他取个别名 stu STU .当我在用printf打印时 ,我认为第二个参数应该是 *(STU.name)可是实际上是STU.name,name不是指针吗?
时间: 2024-01-06 10:04:13 浏览: 43
在结构体中,name 是一个字符数组,它本身就是一个指针,指向字符数组的首地址。因此,当你使用 STU.name 时,实际上是取得了 name 数组的首地址,而不是字符数组的第一个元素。因此,你应该使用 STU.name 来输出 name 字符数组的值,而不是 *(STU.name)。例如:
```
printf("%s", STU.name);
```
相关问题
我定义了一个结构体 typedef stu{}
这是一个定义结构体的语法,但是你需要在`{}`中定义结构体的成员变量。例如:
```
typedef struct {
int id;
char name[20];
float score;
} stu;
```
这个结构体定义了一个学生的信息,包括学生的ID、姓名和成绩。你可以使用`stu`类型来定义一个学生的变量。例如:
```
stu student1;
student1.id = 1001;
strcpy(student1.name, "张三");
student1.score = 90.0;
```
这样就可以定义一个学号为1001,姓名为“张三”,成绩为90分的学生。
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` 类型元素的数组。
这个结构体的意义可能是用来表示某个学校的学生信息,其中每个元素代表一个学生的信息,包括姓名、年龄、性别和学号。