首页 > 代码库 > C语言中的结构体,结构体数组

C语言中的结构体,结构体数组

 

C语言中的结构体是一个小难点,下面我们详细来讲一下:至于什么是结构体,结构体为什么会产生,我就不说了,原因很简单,但是要注意到是结构体也是连续存储的,但要注意的是结构体里面类型各异,所以必然会产生内存对齐的问题。也就是内存里面会有空档。

1.结构体的定义和赋值 

结构体是可以直接初始化的,在定义的时候,就可以初始化,而且如果你的结构体中恰好有字符数组的话,这个时候初始化是不错的选择,原因很简单,字符数组只能定义的时候直接初始化
后来就不可以了,后来你就只能用strcpy函数来拷贝初始化了。
struct 结构体名
{
数据类型   成员名1;
数据类型   成员名2;

数据类型   成员名n;
};

 2.定义结构体变量的俩种方法:

struct 结构体名
{
成员列表;
}变量名1;
struct 结构体名 变量名2;

 访问结构体成员
结构体变量名.成员名


3.结构体初始化操作

struct 结构体名 变量名={初始数据表};

无名结构体
没有类型名。
一般状态下:无名结构体不可以定义局部变量。

4.结构体嵌套


1--- 成员所属的数据类型是 结构体类型

2--- 内部的结构体通常定义为无名结构体

 

技术分享

 

技术分享

 

5.结构体数组

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

技术分享

 

C语言中的结构体,结构体数组