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 函数所分配的区域。

posted @   码上领航者  阅读(34)  评论(0编辑  收藏  举报
编辑推荐:
· 从 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的设计差异
点击右上角即可分享
微信分享提示