结构体中再次定义结构体
时间: 2023-10-22 19:03:27 浏览: 95
在结构体中再次定义结构体是完全合法的。这种情况下,我们称之为嵌套结构体。嵌套结构体允许我们在一个结构体内使用另一个结构体作为成员。
下面是一个示例代码,展示了如何在结构体中嵌套定义另一个结构体:
```C
#include <stdio.h>
// 定义嵌套的结构体
struct Address {
char city[50];
char street[50];
};
struct Employee {
char name[50];
int age;
struct Address address; // 在结构体中嵌套定义另一个结构体
};
int main() {
// 创建一个 Employee 结构体对象
struct Employee emp1;
// 赋值给嵌套的 Address 结构体成员
strcpy(emp1.name, "John");
emp1.age = 30;
strcpy(emp1.address.city, "New York");
strcpy(emp1.address.street, "Main Street");
// 输出员工信息
printf("Name: %s\n", emp1.name);
printf("Age: %d\n", emp1.age);
printf("City: %s\n", emp1.address.city);
printf("Street: %s\n", emp1.address.street);
return 0;
}
```
在上述示例中,我们定义了两个结构体:`Address` 和 `Employee`。`Employee` 结构体中包含了一个 `Address` 结构体作为成员。在 `main` 函数中,我们创建了一个 `Employee` 结构体对象 `emp1`,并对其成员进行赋值和输出。
嵌套结构体的使用可以帮助我们更好地组织和管理复杂的数据结构。
阅读全文