text 代码段: 存储的是二进制指令、常量数据,权限是只读,强制修改会产生段错误
data 数据段: 存储被初始化过的全局变量、被初始化过的静态局部变量
bss 静态数据段:存储未初始化的全局变量、未初始化过的静态局部变量,程序运行时会自动清理为0
stack 栈: 局部变量、块变量,会随着程序运行而不断地申请、释放,由系统统一管理,但是小
heap 堆: 由程序员手动管理,特点就是大
static
改变存储位置:
改变局部变量的存储位置:由stack栈内存改为data或者bss(由局部变量是否初始化决定)
被它修饰过的局部变量也称为静态局部变量
延长生命周期:
延长局部变量的生命周期
限制作用范围:
限制全局变量、函数只能在本文件中使用
防止全局变量、函数名冲突,也可以防止被别人调用
C语言关键字:
数据类型相关:
内建类型:
void,char,short,int,long,float,double 7个
自建类型:
struct,union,enum,sizeof 4个
类型限定符:
auto,const(恒定不变),static(静态的),volatile(定义变量,相当于告诉编译器,这个变量的值会随时发生变化,易变的、不稳定的),register(做声明的,代表寄存器存储的类型),extern(放在变量
或者函数前,以表示变量或函数的定义在别的文件中),
typedef(给数据类型取一个新的名字),signed,unsigned 8个
流程控制相关:
分支:
if,else,switch,case,default 5个
循环:
for,while,do 3个
跳转:
break,continue,goto,return 4个