1.计算机三大组成部分:CPU 内存 硬盘
2.内存与硬盘的区别:内存保存动态数据,硬盘保存静态数据;断电时,内存数据丢失,硬盘数据不丢失。
3.内存是共享设备,是稀缺资源。操作系统用来管理资源,给每个进程抽象出4G虚拟地址空间,虚拟空间通过MMU映射到物理地址。
4.4G虚拟地址空间的划分:最高地址1G是内核空间,剩下3G是用户空间。用户空间分为栈空间,堆空间,数据区和代码段。栈空间存放局部变量、函数形参、自动变量;堆空间里存放malloc、ralloc、calloc;数据区又划分为bss(保存未初始化的全局变量)、or(only read)(保存常量)、静态数据区(保存static修饰的变量和初始化的全局变量);代码段存放代码。
5.栈空间的特点:先进后出,由系统管理。
堆空间的特点:先进先出,由用户管理。
6.分配内存的三种方式:栈空间、堆空间、数据区。
7.全局变量和局部变量的区别:(1)全局变量存放在数据区,局部变量存放在栈空间。(2)局部变量的生命周期是所在函数结束后释放,全局变量的生命周期是整个程序结束后释放。(3)局部变量未初始化,系统自动初始化为垃圾值;全局变量未初始化,系统自动初始化为0。
8.全局变量和局部变量重名时,局部变量起作用
9.声明和定义的区别:声明不需要分配内存空间,定义需要分配内存空间;声明可以声明多次,定义只能定义一次。
10.格式化输入和输出
获取地址: %p
获取字符串: %s
获取无符号整型: %u
获取长整型: %ld
获取双精度浮点型: %lf