#include<stdlib.h>
#include<stdio.h>
#include<string.h>
// 结构体嵌套
// 第一种 结构体嵌套写法
struct Worker {
char *name;
int age;
struct Tearcher {
char* name;
int age;
} teacher;
};
// 第二种结构体嵌套写法
// 注意写法 结构体Car的声明必须在结构体Person的前面
struct Car {
// 汽车名称
char *name;
// 汽车颜色
char outlook[20];
};
struct Person {
char *name;
int age;
struct Car car;
};
int main() {
// 结构体嵌套 第一种写法
struct Worker worker = {"Zhangsan", 10, {"Teacher", 24}};
printf("worker name is %s, age is %d\nTeacher name is %s, age is %d\n", worker.name, worker.age, worker.teacher.name, worker.teacher.age);
// 结构体嵌套 第二种写法
struct Person person;
person.name = "LiXiao";
person.age = 20;
person.car.name = "Jack";
strcpy(person.car.outlook, "green");
printf("Person name is %s, age is %d\n", person.name, person.age);
printf("Car name is %s, outlook is %s\n", person.car.name, person.car.outlook);
return 0;
}
输出如下:
worker name is Zhangsan, age is 10
Teacher name is Teacher, age is 24
Person name is LiXiao, age is 20
Car name is Jack, outlook is green