什么是结构体指针数组

描述

什么是结构体指针数组?

之前我们讲过一些复杂的类型声明,不过那些都是为了应付笔试面试,在实际的应用中并不常见。

结构体指针数组也比较复杂,但是在项目中经常能看到。

 

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};

 

想要把这些地址全部保存下来,可以考虑使用数组,这样的数组,就是结构体指针数组。

其实也很好理解,数组里面保存了多个指针,每个指针都指向一个结构体。

如果通过数组名去访问某个结构体的某个成员,先取出地址,再通过地址访问。

学习指针,画图是个很好的方法,搞清楚了内存的关系,再去写代码就会容易的多。

 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分