指针基础之结构体指针 传统结构体定义 //关键字struct +结构体名 如struct person 类似于 int struct person { int age ; char sex; }; //定义结构体类型的变量p1 //结构体成员访问操作符 . struct person p1; p1.age=10; p1.sex='man'; printf("p1的年龄为%d,\n",p1.age ); 输出为:p1的年龄为10 结构体指针定义 //即定义的变量为指针变量 struct person *p=&p1; //结构体指针成员访问操作符 -> p->age = 11; printf("p1的年龄通过指针被改为%d,%d\n",p1.age,p->age ); 输出为:p1的年龄通过指针被改为11,11 在堆区申请一个结构体长度空间给到结构体指针进行访问 //结构体申请空间和普通类型一样 只是将int等类型换为了结构体类型 struct person *pp = ( struct person *) malloc(sizeof (struct person )); pp->age =33; pp->sex ='m'; typedef 后使用结构体指针与结构体类型申请堆区的常用操作 typedef struct { int age; }Child,*pChild; //此时的pChild就是一个结构体指针类型 = Child * pChild *pc = (pChild *) malloc (sizeof(Child)); pc->age; pc->sex; //使用时和结构体指针一样