上一节, 我们讲解了结构体数组, 这次我们来讲解指向结构体的指针, 之前我说过, 只要有地址, 指针就能指向它, 那么下面我们来看看结构体的指针吧~~~
下面我们来看一个例子:
#include <stdio.h> int main() { struct Student { int age; char *name; }; struct Student sut1 = {20, "小明"}; printf("%d %s ", sut1.age, sut1.name); return 0; }
按照常规, 我们是这样子定义结构体, 并且调用结构体, 但是用了指针, 我们就有了其他的调用方式, 下面我们继续来看例子:
#include <stdio.h> int main() { struct Student { int age; char *name; }; struct Student stu = {20, "小明"}; printf("stu = %d stu = %s ", stu.age, stu.name); printf("stu = %p ", &stu); struct Student *p; p = &stu; // 这不是最常用的写法 // printf("p = %d p = %s ", (*p).age, (*p).name); // 下面这个才是我们结构体指针最常用的写法 printf("p = %d p = %s ", p->age, p->name); printf("p = %p ", p); return 0; }
输出的结果:
下面我们来看看示意图:
指针p存的是结构体stu的地址, 可以间接调用里面的成员, 所以也就有我们所看到的输出结果啦~~~
好了, 这次就到这里吧~~~剩下的东西和之前讲指针里面的知识点都差不多的, 所以这里就不多介绍了~~~