我定义了一个结构体 typedef stu{}
时间: 2023-07-01 20:08:35 浏览: 74
这是一个定义结构体的语法,但是你需要在`{}`中定义结构体的成员变量。例如:
```
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 { int id; char name[20]; float score;} stu;;然后我给他取个别名 stu STU .当我在用printf打印时 ,我认为第二个参数应该是 *(STU.name)可是实际上是STU.name,name不是指针吗?
在结构体中,name 是一个字符数组,它本身就是一个指针,指向字符数组的首地址。因此,当你使用 STU.name 时,实际上是取得了 name 数组的首地址,而不是字符数组的第一个元素。因此,你应该使用 STU.name 来输出 name 字符数组的值,而不是 *(STU.name)。例如:
```
printf("%s", STU.name);
```
申明一个结构体STUDENT,要求包含三个成员:学号,姓名,成绩。定义两个结构体变量stu1,stu2,并分别给他们各个成员赋值,并输出各个变量成员的值
在C语言中,可以这样声明一个名为`STUDENT`的结构体,它包含了学号、姓名和成绩这三个成员:
```c
typedef struct {
int student_id; // 学号
char name[50]; // 姓名
float score; // 成绩
} STUDENT;
```
接下来,我们可以定义两个`STUDENT`类型的变量`stu1`和`stu2`,并为它们的成员赋值:
```c
STUDENT stu1 = {1001, "张三", 90.5}; // 赋初始值给stu1
STUDENT stu2 = {1002, "李四", 88.0}; // 赋初始值给stu2
// 输出stu1的成员值
printf("学生1信息:\n");
printf("学号:%d\n", stu1.student_id);
printf("姓名:%s\n", stu1.name);
printf("成绩:%.1f\n", stu1.score);
// 输出stu2的成员值
printf("\n学生2信息:\n");
printf("学号:%d\n", stu2.student_id);
printf("姓名:%s\n", stu2.name);
printf("成绩:%.1f\n", stu2.score);
```
上述代码首先初始化了`stu1`和`stu2`,然后通过`printf`函数输出每个学生的详细信息。
阅读全文