个人计算机的三大重要组成部分:
1、 CPU;
2、 内存;(共享设备、稀缺资源)
3、 硬盘;
内存与硬盘的区别:
表述方法一:内存是动态存储数据的,当设备断点后所有数据消失;硬盘静态存储数据,当设备断电后数据依然原样保留;
表述方法二:程序在不运行时存放在硬盘中,当程序运行时,程序会被调到内存中,此时程序变化为进程;
变量的特性
1、 变量的类型;
2、 变量的作用域;
3、 变量的存储区域;
操作系统作用:管理资源;
两个名词:物理内存、抽象内存
对应:虚拟地址空间、物理地址空间;
虚拟地址空间→MMU→物理地址空间
假设4GB的内存:
1、最顶层1GB内存,计算机分配给内核;
2、下方3GB内存为用户空间;
1) 栈空间;(1、先进后出;2、由系统管理;)
局部变量、函数形参、自动变量
2) 堆空间;(1、后进先出;2、由用户管理;)
malloc、calloc、ralloc
3) 数据区;
*1、DBSS:未初始化的全局变量;
*2、OR(only read):常量;
*3、静态数据区:static修饰的变量、初始化的全局变量;
4) 代码段;
保存代码;
分配内存的三种方式:栈空间、堆空间、数据区;
全局变量、局部变量重名时局部变量在起作用;
栈空间所有数据的生命周期:函数调用到函数结束,函数结束后释放所有空间;
数据区所有数据的生命周期:从程序头到程序尾,整个程序结束后释放所有空间;
栈空间中保存的局部变量未初始化时,其值为一个不可预料的垃圾值;
数据区中保存的全局变量未初始化时,其值系统默认为0;