C 语言(7)
7.结构体(struct)、共用体(union)、枚举类型(enum)
7.1 结构体
定义一个结构的一般形式为:
struct 结构名
{成员表列}
结构体所占内存长度是个成员占的长度之和。
7.2 共用体
几个不同的变量共占一段内存的结构,称为共用体(union)。
定义一个公用体的一般形式为:
union 共用体类型名
{成员表列}
共用体所占内存长度等于最长的成员的长度。
共用体数据类型的特点:
1) 共用体的目的是用同一段内存存放几种不同类型的数据,不能同时存几种。
2) 能够访问的是共用体变量中最后被赋值的成员。
3) 共用体和它的个成员都是同一个地址。
4) 不能对共用体变量名赋值;不能企图引用变量名来得到一个值;不能在在定义共用体时对它初始化;不能用共用体变量名作为函数参数。
7.3 枚举类型
枚举的定义枚举类型定义的一般形式为:enum 枚举名{ 枚举值表 };
注意:枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。
7.4 类型定义符 typedef
类型定义符 typedef 允许由用户为数据类型取“别名”。
Typedef 定义的一般形式为:typedef 原类型名 新类型名
7.5 动态内存分配
7.5.1 内存分配函数
1) malloc
调用形式:(类型说明符*)malloc(size)
2) calloc
调用形式:(类型说明符*)calloc(n,size)
3) calloc函数与malloc 函数的区别仅在于一次可以分配n块区域。
7.5.2 内存释放函数
调用形式: free(void*ptr);
功能:释放 ptr 所指向的一块内存空间,ptr 是一个任意类型的指针变量,它指向被释放区域的首地址。被释放区应是由 malloc 或 calloc 函数所分配的区域。
-------------------------------------------------------------------------
专注于软件技术和团队管理,致力于为程序员、技术领导者以及对软件开发感兴趣的朋友提供深度的行业见解、实用的管理策略和职业发展的最佳实践。关注个人微信公众号《码上领航者》获取更多深度洞察。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异