27、指向结构体的指针

1、源码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<stdio.h>
int main()
{
struct Person
{
int age;
char* name;
};
struct Person p1 = {.age=18,.name="xiaobei"};
struct Person* p2;
p2 = &p1;
printf("p1.age=%d\tp1.name=%s\n",p1.age,p1.name);
printf("p2.age=%d\tp2.name=%s\n",(*p2).age,(*p2).name);
printf("p2->age=%d\tp2->name=%s\n",p2->age,p2->name);
p1.name = "xiaoming";
printf("p1.age=%d\tp1.name=%s\n",p1.age,p1.name);
printf("p2.age=%d\tp2.name=%s\n",p2->age,p2->name);
printf("====================结构体变量内存地址===================\n");
printf("p1=%p\n",&p1);
printf("p1.age=%p\n",&p1.age);
printf("p1.name=%p\n",&p1.name);

printf("p2=%p\n",&p2);
printf("p2.age=%p\n",&p2->age);
printf("p2.name=%p\n",&p2->name);
return 0;
}
2、运行结果

运行结果

3、总结

直接使用结构体指针时,引用成员变量的操作由.改为->