c++如何定义二维数组结构体_C/C++结构体数组——数据结构必备

55cba9a4d8ae72306d780dbb9ee59a4b.gif

640?wx_fmt=other

为了生活是桩美妙的事而生活 不知道各位数据结构学习如何 下午小编做到一道题目 该题需要使用结构体数组 在这我就和大家复习一下 ——结构体数组 文末有惊喜

881e88756de8facbdf44223c6cd66f8b.gif

结构体数组

所谓结构体数组,是指数组中的每个元素都是一个结构体。

在实际应用中,C语言结构体数组常被用来表示一个拥有相同数据结构的群体,比如一个班的学生、一个车间的职工等。

本质上就是数组,元素是结构体类型,定义了一堆结构体。

下面有2种定义结构体数组的方式

#include #include struct data {    int num;    float f1;    char str[4];}//db[3]={{1,1.0,"jk"},{2,2.0,"jkj"}};//第一种db[3]={1,1.0,"jk",2,2.0,"jkj"};//第二种 但是匿名结构体这种方式不行void main(){    printf("\n%d",sizeof(struct data));    printf("%db",&db);    printf("\n%x",&db[0]);    printf("\n%x",&db[1]);    printf("\n%x",&db[2]);    //此处插入断点    //结构体数组在内存中是挨个挨个排列的    getchar();}

第一种直接在结构体后面进行命名,这种方式也是我们最常用的方法。

第二种方法其实与第一种无异,但是在匿名结构体中不能使用这种方法。

  • 指向结构体数组指针

一个结构体变量的指针就是该变量所占据的内存段的起始地址。

可以设一个指针变量,用来指向一个结构体变量,此时该指针变量的值是结构体变量的起始地址,指针变量也可以用来指向结构体数组中的元素。

本质上,它就是指向数组的指针。

1、类型一:

指向结构体变量的指针引用结构体变量中的成员。

2、类型二:

用结构体变量和指向结构体变量的指针构成链表,链表是一种常见的重要的数据结构。链表有一个“头指针”变量,以head表示,它存放一个地址。该地址指向一个元素。

链表中的每一个元素称为“结点”,每个结点都应包括两个部分:

一是用户需要用的实际数据,

二是下一个结点的地址。

链表中各元素在内存中的存储单元可以是不连续的。要找某一元素,可以先找到上一个元素,根据它提供的下一元素地址找到下一个元素。这种链表的数据结构,必须利用结构体变量和指针才能实现。

可以声明一个结构体类型,包含两种成员,一种是用户需要用的实际数据,另一种是用来存放下一结点地址的指针变量。

af4b78ba40a28a6dfdb90a12ada6f19b.gif

00d0c391e3751cf316519feac4eaae74.png

本文部分内容出自百度本科

今天内容到此结束 以上内容有问题可以私信小编 欢迎大家添加微信号:“小南教育” 计算机等级考试资料9折起售!

c6df0702aae46ab41d223ed04ab32651.png