typedef同一个结构体
时间: 2023-06-22 16:44:46 浏览: 51
是可以的。在C语言中,typedef关键字可以用来给一个已有的类型定义一个新的名字。同样,也可以用typedef给一个已有的结构体定义一个新的名字。例如:
```
typedef struct {
int age;
char name[20];
} Person;
typedef Person Student;
```
在上面的例子中,Person是一个结构体类型,包含age和name两个成员变量。通过typedef关键字,将Person定义为一个新的类型名,也就是一个别名。之后又用typedef将Student定义为Person的别名,这样就可以用Student来代替Person了。
相关问题
typedef修饰一个结构体
C语言中,typedef关键字可以用来给一个类型取一个新的名字。当我们使用typedef来定义一个结构体时,我们可以使用这个新的名字来代替这个结构体的名称,从而简化代码的书写。
例如,我们可以使用以下代码来定义一个结构体并使用typedef来为它取一个新的名字:
```
typedef struct {
int age;
char name[20];
} Person;
```
这个代码定义了一个名为Person的结构体,它包含了一个整型变量age和一个字符数组name。使用typedef关键字,我们为这个结构体取了一个新的名字Person。
这样,我们就可以使用Person来代替这个结构体的名称,从而更加方便地定义这个结构体的变量:
```
Person p1;
p1.age = 18;
strcpy(p1.name, "Tom");
```
以上代码定义了一个名为p1的Person类型的变量,并给它的age成员赋值为18,name成员赋值为"Tom"。
typedef创建一个结构体数组
通过使用typedef关键字,可以创建一个结构体数组。下面是一个示例代码:
```c
#include <stdio.h>
typedef struct {
int id;
char name[20];
} Person;
int main() {
Person people[3] = {
{1, "Alice"},
{2, "Bob"},
{3, "Charlie"}
};
for (int i = 0; i < 3; i++) {
printf("Person %d: ID = %, Name = %s\n", i+1, people[i].id, people[i].name);
}
return 0;
}
```
这段代码定义了一个名为Person的结构体,包含id和name两个成员变量。然后使用typedef关键字将这个结构体重命名为Person。接下来,在main函数中创建了一个名为people的Person类型的结构体数组,并初始化了其中的元素。最后,使用循环遍历结构体数组,并打印每个人的ID和姓名。