相同点: 功能相同:访问结构体或者类的成员。优先级相同。 不同点: 结构体变量用 . 来访问成员;结构体指针用 ->来访问成员; #include <stdio.h> #include<string.h> //首先定义结构体类型student,并通过typedef将struct student结构体类型换名为Stu typedef struct student{ int age; char name[100]; }Stu; int main( ){ Stu stu1={0};//在主函数中定义结构体变量stu1并初始化成员变量为0 stu1.age=9;//结构体stu1通过【 . 】对其成员变量age进行访问,将age赋值为9 strcpy(stu1.name,"小张"); printf("%d %s \n",stu1.age,stu1.name); Stu stu2;//定义Stu类型结构体变量stu2 Stu *pstu2;//定义Stu类型的指针变量pstu2 pstu2=& stu2;//在pstu2的内存存放结构体变量stu2的首地址, pstu2->age=12;//通过【 -> 】对存放着结构体变量的地址的指针变量pstu2进行间接访问,进而访问stu2的结构体成员变量age printf("%d ",pstu2->age); return 0; }