晓白初识之C语言四

> 编程的本质:建模

现实世界 --> 分析、建模 --> 概念模型

一. 内存管理

1.  概念

在程序中分配和释放内存资源

void *v;   // 类型未知的指针变量, 指针大小都是8个字节

              // 可以存储各种类型数据的地址

管理方式

- 系统管理:函数中声明的普通变量,内存空间 栈空间

          由系统分配与销毁,函数中声明时分配,函数结束时销毁

- 手动管理

     基于内存管理函数创建的,或全局的变量,存储在 堆空间,需要手动的销毁或释放;否则会出现内存泄漏

2. 相关函数  ,需 stdlib.h 头文件

- malloc    分配

- free      释放

- realoc    重新分配

- calloc    分配,初始化

- memcpy    内存拷贝

- memset    初始化

二. 联合 & 枚举

1. 复合数据类型

    - 数组:类型相同的多个元素,顺序存储

        - 字符串

    - 结构体 struct:把存在逻辑关联的多个字段封装成一个整体

        - 自定义、扩展出无限的数据类型

    - 联合 union

    - 枚举 enum

2. 联合

        联合是一种特殊的数据结构,允许在相同的内存位置存储不同的数据类型。一个联合可以容纳其成员中最大的成员,但是一次只能存储一个成员的值。

        联合的主要用途是节省内存空间,同时能够访问多种类型的数据。

特点:

  • 所有成员共享相同的内存位置。
  • 联合的大小等于其最大成员的大小。
  • 同时只能访问一个成员。

例:

union unit

{

    short a;

    int b;

}

与结构体区别:

1. 内存结构及空间大小不同,取最大字段的大小

2. 字符的赋值,结构体多个字段的值共存,互不影响,联合的多个字段只能使用一个

3. 枚举

枚举是一种数据类型,它允许为整数值赋予更易读的名称。枚举提供了一种方式来定义命名的常量集合。

特点:

  • 枚举类型定义了一组命名的整数常量。
  • 枚举成员默认从0开始,依次递增。
  • 可以为枚举成员指定显式的整数值。

提升代码的可读性、可扩展性

可以使用其中的多个属性

例:

enum color

{

    RED,

    GREEN,

    BULE

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值