内存的分区
主要强调的是运行中的进程内存分区
各类的变量(重要)
普通局部变量
定义形式:在{}里面定义的变量为普通局部变量
作用范围:在{}里面有效
生命周期:{}复合语句结束 局部变量被释放
内存区域: 栈区
注意事项:
- 局部变量不初始化 内容不确定
- 局部变量如果同名 就近原则
普通全局变量
定义形式:在函数外部定义的变量
作用范围:当前源文件以及其他源文件都有效
生命周期:整个进程(运行的程序结束后 才释放)
内存区域:全局区
注意事项:
- 全局变量不初始化 内容为0
- 如果其他源文件 要使用全局变量 必须在使用处在extern声明
- 全局变量和局部变量同名优先选择局部变量
静态局部变量
定义的形式:在{}里面定义 加static修饰
作用范围:{}里面有效
生命周期:整个进程(运行的程序结束后 才释放)
内存区域:全局区
注意事项:
- 静态局部变量不初始化 内容为0
- 静态局部变量 只能定义一次
静态全局变量
定义形式:全局变量前加static修饰
作用范围:只在当前源文件有效
声明周期:整个进程(运行的程序结束后 才释放)
内存区域:全局区
注意事项:
- 不初始化为0
- 只在当前源文件有效
全局函数
定义的函数默认为全局函数
只要在其他源文件加extern声明 就可以在其他源文件中使用
静态函数
函数返回值值类型前 加static修饰 为静态函数
静态函数不能被其他源文件使用