静态变量和动态变量

静态变量

就是在定义的时候,有static修饰的变量,形式为

static TYPE var_name = init_value;

动态变量,形式为

TYPE var_name = init_value;

即没有static 修饰。其中的=init_value均可省略。

区分定义在函数外的全局变量,和函数内的局部变量,作用域生命周期,及无显式初始化时的初始值,均有区别。

1 动态全局变量:

作用域为整个项目,即最终编译成可执行文件的所有文件中均可以使用动态全局变量。

生命周期为从程序运行到程序退出,即贯穿整个运行时间。

无显式初始化时默认初始化值为0。

2 静态全局变量:

作用域为当前文件,从定义/声明位置到文件结尾。

生命周期为从程序运行到程序退出,即贯穿整个运行时间。

无显式初始化时默认初始化值为0。

3 动态局部变量:

作用域为当前函数,从定义位置,到其所在的{}的结束位置。

生命周期为从函数调用到函数退出。

无显式初始化时默认初始化值为随机值。

4 静态局部变量:

作用域为当前函数,从定义位置,到其所在的{}的结束位置。

生命周期为从程序运行到程序退出,即贯穿整个运行时间,当下次函数调用时,静态局部变量不会被再次初始化,而是沿用上次函数退出时的值。

无显式初始化时默认初始化值为0。

推荐课程:C语言教程

更多相关文章

  1. c++如何设置全局变量
  2. C语言如何定义变量
  3. C语言中在main函数中定义的变量是全局变量么
  4. 变量的指针是指该变量的什么
  5. C语言变量的定义包括变量存储类型和变量的什么?
  6. 判断char型变量ch是否为大写字母的正确表达式是什么
  7. c语言中要求对变量作强制定义的主要理由是什么?
  8. c++数组初始化的种类有哪些
  9. C++如何给二维数组初始化

随机推荐

  1. Android事件分发机制
  2. Tiny210(Android)串口收发测试通过
  3. android 流量统计实现思路
  4. TextView中ellipsize属性焦点异常处理
  5. 如何为香蕉派 banana pi BPI-M2编译Andro
  6. android菜单Tips
  7. Android 编程设置 APN
  8. [android]Activity切换动画
  9. Android(安卓)EGL_BAD_CONFIG error,配置E
  10. Android适配器之-----SimpleAdapter