嵌入式学习10(C语言五大内存区间,变量的作用域和生存期,变量的存储类型)

本文介绍了C语言中的五大内存区间:栈区、堆区、全局区、文字常量区和代码区,并详细讲解了变量的作用域和生存期,包括局部变量、全局变量以及静态和动态存储方式。此外,还探讨了auto、register、extern和static四种变量存储类型,以及volatile和const的用法。
摘要由CSDN通过智能技术生成

今天又是元气满满的一天大笑

C语言的五大内存区间

1、  栈区(stack):函数的形参和局部变量,先入后出,由编译器自动分配,自动释放

2、  堆区(heap):一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它和数据结构中的堆是两回事,分配方式类似与链表(malloc---free ;new—delete)

3、  全局区(静态区)(static):全局变量和静态变量是存放到一起的,初始化的全局和静态在一块区,未初始化的在相邻的另一块区域。系统释放。

4、  文字常量区:存放常量字符串,系统释放。

5、  代码区:存放函数体的二进制代码

 

 

 

变量的作用域和生存期(两种分类方式)

按作用域分:

(1)      局部变量

Ø  局部和全局重名时,屏蔽同名全局

Ø  不同作用域的局部变量可以重名

 

(2)      全局变量:作用域是整个源程序,在函数中使用全局变量,一般作全局说明。但在一个函数之前定义的全局变量,在函数体内不用再加说明。

Ø  用extern关键字定义的全局变量称为外部变量。可将作用域进行扩充(本源文件或其他源文件)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值