什么是结构体指针数组?
之前我们讲过一些复杂的类型声明,不过那些都是为了应付笔试面试,在实际的应用中并不常见。
结构体指针数组也比较复杂,但是在项目中经常能看到。
struct Test { int a; char ch; };
首先得有一个结构体,假设结构体有两个成员,一个整型,一个字符,在内存中占 8 个字节。
struct Test t; struct Test *p = &t;
结构体的地址我们一般取最前面的字节地址,如果想保存这个地址,就得用 struct Test * 类型的变量,这个变量就是结构体指针。
通过结构体指针访问结构体成员,使用这个符号。
如果我们创建了多个结构体,那就会得到多个结构体变量的地址。
struct Test t1; struct Test t2; struct Test t3; struct Test t4; struct Test *array[4] = {&t1, &t2, &t3, &t4};
想要把这些地址全部保存下来,可以考虑使用数组,这样的数组,就是结构体指针数组。
其实也很好理解,数组里面保存了多个指针,每个指针都指向一个结构体。
如果通过数组名去访问某个结构体的某个成员,先取出地址,再通过地址访问。
学习指针,画图是个很好的方法,搞清楚了内存的关系,再去写代码就会容易的多。
全部0条评论
快来发表一下你的评论吧 !