介绍 typedef struct 指针类型的用法和示例代码。
第一个例子:
假设我们要创建一个表示汽车的数据结构,并定义一个指向汽车结构体的指针类型。我们可以使用 typedef struct 来定义一个新的类型名 car_t,并定义一个相应的指针类型名 car_ptr_t,如下所示:
typedef struct {
char brand[20];
int year;
float price;
} car_t;
typedef car_t* car_ptr_t;
在这个例子中,我们定义了一个新的结构体类型 car_t,它包含汽车的品牌、生产年份和价格三个成员。然后,我们使用 typedef 定义了一个指向 car_t 结构体的指针类型 car_ptr_t。
接下来,我们可以使用 car_t 来定义一个汽车变量,使用 car_ptr_t 来定义一个指向汽车结构体的指针变量,如下所示:
car_t myCar = {
"Toyota", 2022, 25000.0};
car_ptr_t ptrCar = &myCar;
在这里,我们定义了一个名为 myCar 的汽车变量,它的品牌是 Toyota,生产年份是 2022,价格是 25000.0。同时,我们定义了一个名为 ptrCar 的指针变量,它指向 myCar。
第二个例子:
假设我们正在开发一个学生管理系统,需要存储每个学生的姓名、年龄和成绩。我们可以使用 typedef struct 来定义一个新的类型名 student_t,并定义一个相应的指针类型名 student_ptr_t,如下所示:
typedef struct {
char name[20];
int age;
float score;
} student_t;
typedef student_t* student_ptr_t;
在这个例子中,我们定义了一个新的结构体类型 student_t,它包含学生的姓名、年龄和成绩三个成员。然后,我们使用 typedef 定义了一个指向 student_t 结构体的指针类型 student_ptr_t。
接下来,我们可以使用 student_t 来定义一个学生变量,使用 student_ptr_t 来定义一个指向学生结构体的指针变量,如下所示:
student_t student1 = {
"Alice", 18, 95.5};
student_ptr_t ptrStudent = &student1;
在这里,我们定义了一个名为 student1 的学生变量,她的姓名是 Alice,年龄是 18 岁,成绩是 95.5。同时,我们定义了一个名为 ptrStudent 的指针变量,它指向 student1。
现在,我们可以通过指针来访问和修改学生的信息,例如:
printf("姓名:%s\n", ptrStudent->name);
printf("年龄:%d\n", ptrStudent->age);
printf("成绩:%f\n", ptrStudent->score);
ptrStudent->score = 88.0;
通过指针访问结构体的成员时,使用箭头运算符 “->”。上述代码中,我们打印了学生的姓名、年龄和成绩,并将成绩修改为 88.0。
通过这个例子,可以看到 typedef struct 指针类型的实际应用。它可以帮助我们定义一种新的数据类型,并使用指针来引用和操作该类型的变量。