C语言学习09:结构体
声明结构体
1 | struct st{ |
定义结构体
1 | struct st{ |
注:t1:结构体变量名
初始化结构体
1 | struct test t1 = {5}; |
结构体数组
1 | struct test arr[3] = {1,2,3}; |
结构体指针
struct 结构体名 *变量名;
1 | #include <stdio.h> |
结构体指针获取成员变量
(*ptr).structMenber
ptr->structMenber
注:.运算符
高于 *
,所以(*ptr)括号不能少
字节对齐
#pragma pack(n):指定按照n字节对齐规则进行存储
字节对齐的原因
计算机内存以字节为单位划分,CPU通过
地址总线
来访问内存,一次能处理几个字节,地址总线就读取几个字节。32位一次读取4个字节。64位一次读取8个字节。内存对齐原因:
避免存取效率的损失
总结
- 结构体不占内存空间,是一个创建变量的
模板
- 结构体
成员变量
需要开辟内存空间
- Post title:C语言学习09:结构体
- Post author:张建
- Create time:2023-02-15 00:12:43
- Post link:https://redefine.ohevan.com/2023/02/15/C学习/C语言学习09:结构体/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.