C语言之结构体指针
结构体指针,即为指向一种结构体类型的指针。
1.一般定义法
struct student
{
int num;
int grade;
} ;
struct student *p_student; //定义了一个指向struct student类型结构的指针。
结构体指针p_student可以指向任一属于struct student类型结构的的结构体变量。
2.加上typedef关键字后
typedef struct student
{
int num;
int grade;
} *p_stu;
p_stu为指向__“struct student 结构体类型”的“结构体指针类型”__的别名;此时的p_stu不再是具体的一个结构体指针,而是指向struct student结构体类型的“结构体指针”这个数据类型的别名。
我们可以使用p_stu来定义具体的结构体指针变量,让其指向struct student结构体类型的结构体变量。
例:
#include "stdio.h"
typedef struct student
{
int num;
int grade;
} *p_stu;
struct student student_1=
{
.num=1,
.grade=90,
};
p_stu p_student_1=&student_1;
int main(void)
{
printf("student_1.num=%d\n",p_student_1->grade);//用结构体指针访问成员的第1种方法
printf("student_1.num=%d