10、掌握C语言指针与内存管理

掌握C语言指针与内存管理

1. 内存基础知识

在编程世界中,内存管理和指针操作是C语言的核心概念,尤其在嵌入式系统编程中更是如此。内存是由地址标识的存储单元组成的,每个地址对应着特定大小的数据项。例如,在许多微控制器中,每个地址包含一个8位的数据项。内存可以分为随机存取存储器(RAM)和只读存储器(ROM)。RAM用于存储程序运行时的数据,而ROM则用于存储程序代码和常量数据。

内存地址从0开始,但实际可用的RAM位置可能有限。例如,某款微控制器的可用RAM从地址0x20开始,地址0x00到0x1F用于控制处理器和外围设备的特殊功能寄存器(SFRs)。编译器会为程序变量分配特定的内存位置。例如,以下是一些变量内存分配的视觉表示:

图 10.1: 示例随机存取存储器布局。

2. 地址操作符

一元运算符 & 是地址操作符,用于获取变量的内存地址。例如:

int a = 10;
printf("%p\n", &a); // 输出变量a的地址

地址操作符只能与左值操作数(通常是变量)一起使用,表达式或常量是不合法的。

3. 间接操作符

一元运算符 * 是间接操作符,用于访问指定内存位置的值。例如:

int a = 10;
int *p = &a;
prin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值