c语言基础复习02

二、存储类
1、4种存储类:
①auto:所有局部变量默认的存储类[在函数开始时被创建,在结束时被销毁]
②register:用于定义存储在寄存器中而不是RAM中的变量
③static:修饰变量时可以在函数调用时保持变量值不变
④extern:用来在另一个文件中声明了一个全局变量或函数
e.g 在另外一个文件已经使用过了,再次使用,则在函数和变量前加个extern

2、RAM是一种计算机内存,用于存储程序和数据
分为四个区域,即内存四区:代码区、全局区、堆区、栈区
①代码区(.text [只读]):存放二进制代码,由操作系统进行管理的(存储程序的指令)
②全局区:存放全局变量和静态变量(static关键字修饰的)以及常量(字符串、const修饰的全局变量)
· 初始化的全局变量和静态变量在一块区域(.data段[可写]
··未初始化的全局变量和静态变量或初始化为0的全局变量和静态变量在相邻的另一块区域(.bss段[可写])
③栈区:由编译器自动分配释放,存放函数的参数值,局部变量的
④堆区:一般由程序员手动分配释放,释放一块存储空间给内存地址用于调用函数,这块内存地址会通过指针指向内存区域;若程序员不释放,程序结束后由操作系统回收(利用new关键字开辟堆区)
e.g 在main()方法中调用函数时,编译器会将运行的函数数据进行压栈保护,同时也会保存函数运行时对应的寄存器值以及对应函数的返回地址到堆栈,然后将函数的参数进行压栈

你可能感兴趣的:(c语言,开发语言,c语言)