C语言中的变量与内存四区

C语言中的变量与内存四区

1. 内存四区

C语言编程必须要对系统的内存情况了解清楚才高效的编程,下图是可执行文件在内存中的分布
在这里插入图片描述

2. 变量

定义形式作用范围生命周期存储区域
普通局部变量在{}里面定义的普通变量离它最近的{}之间有效离开{}的局部变量系统会自动回收栈区
普通全局变量定义在函数外边的变量当前源文件都有效 ,其它源文件使用全局变量时必须加extern声明整个进程都有效(程序结束时,全局变量才被释放)全局区
静态局部变量在{}中定义,前面必须加static修饰离它最近的{}之间有效整个进程(程序结束时,静态局部变量才被释放)全局区
静态全局变量在函数外边定义,同时加上static修饰当前源文件有效,不能在其他源文件中使用整个进程都有效(程序结束时,静态全局变量才被释放)全局区

2.1 普通局部变量

在这里插入图片描述
注意事项:

  • 普通局部变量不初始化内存不确定
  • 普通局部变量同名就近原则

2.2 普通全局变量

在这里插入图片描述
注: extern 本质: 告诉编译器 变量/函数 来至其它源文件,请通过编译
在这里插入图片描述
在这里插入图片描述

2.3 静态局部变量

在这里插入图片描述
在这里插入图片描述

  • 全局区的内容的生命周期都是整个进程
  • 静态局部变量常用于统计函数调用次数!!

2.4 静态全局变量

在这里插入图片描述

3 全局函数与静态函数在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值