苏嵌22 16.11.26

局部变量--->栈    全局变量--->数据区

int num = 5;

①占用空间大小 ②作用域(生命周期)③变量的存储区域

计算机    CPU

内存     动态            掉电后丢失        存放 当前运行的数据

硬盘     静态            掉电后不丢失    存放固有的数据


内存↑   运行效率↑    换cpu贵   换主频:①功耗大②容易爆炸


程序 进程

硬盘   hello.c   a.out      ---------> 内存a.out

 ./a.out

内存中每个进程抽象4个G空间


内存:共享设备  稀缺资源

操作系统:管理资源

打印出来的地址是抽象出来的地址


虚拟空间(4G)通过MMU映射到物理内存(2M)


虚拟空间:

内核空间1G 内核         最高地址

栈空间  所在函数结束之后释放(未初始化给随机值) 存放局部变量 函数形参  自动变量

用户空间3G 堆空间     malloc   ralloc    calloc

数据区 整个函数结束之后再释放    bss:未初始化的全局变量(默认初始化为0)  or:(only read)常量 char *src = "hello world";   静态数据区:static 修饰变      量 初始化的全局变量

代码段     代码


栈空间:1、先进后出2、系统管理(程序员无法决定)

堆空间:1、先进先出2、用户管理

分配内存的3种方式:栈空间  堆空间  数据区


全局变量与局部变量重名时,局部变量起作用


定义:分配内存空间 只能定义一次

声明:不需要分配内存空间 可以声明多次

声明能提高编译效率

定义性声明:int count;

引用性声明:extern int count;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值