C语言-变量的存储

内存的分区

主要强调的是运行中的进程内存分区

普通局部变量

定义形式:在{}里面定义的变量为普通局部变量

作用范围:在{}里面有效

生命周期:{}复合语句结束 局部变量被释放

内存区域: 栈区

注意事项:

  1. 局部变量不初始化 内容不确定
  2. 局部变量如果同名 就近原则

普通全局变量

定义形式:在函数外部定义的变量

作用范围:当前源文件以及其他源文件都有效

生命周期:整个进程(运行的程序结束后 才释放)

内存区域:全局区

注意事项:

  1. 全局变量不初始化 内容为0
  2. 如果其他源文件 要使用全局变量 必须在使用处在extern声明
  3. 全局变量和局部变量同名优先选择局部变量

静态局部变量

定义的形式:在{}里面定义 加static修饰

作用范围:{}里面有效

生命周期:整个进程(运行的程序结束后 才释放)

内存区域:全局区

注意事项:

  1. 静态局部变量不初始化 内容为0
  2. 静态局部变量 只能定义一次

静态全局变量

定义形式:全局变量前加static修饰

作用范围:只在当前源文件有效

声明周期:整个进程(运行的程序结束后 才释放)

内存区域:全局区

注意事项:

  1. 不初始化为0
  2. 只在当前源文件有效

全局函数

定义的函数默认为全局函数

只要在其他源文件加extern声明 就可以在其他源文件中使用

静态函数

函数返回值值类型前 加static修饰 为静态函数

静态函数不能被其他源文件使用

上一篇
下一篇