相同点:
- 功能相同:访问结构体或者类的成员。
- 优先级相同。
不同点:
- 结构体变量用 . 来访问成员;
- 结构体指针用 ->来访问成员;
#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;
}
![](https://img-blog.csdnimg.cn/fa8fcf6b749d406da543d198f52a9d29.png)
![](https://img-blog.csdnimg.cn/00e62a198380437d9449904e0a2dd40f.png)