全局变量、静态全局变量、静态局部变量和普通局部变量的区别

存储区域:

  • 全局变量、静态全局变量和静态局部变量存放在内存的全局数据区
  • 局部变量存放在内存的栈区

作用域:

  • 全局变量在整个工程文件里都有效;
  • 静态全局变量只在定义的文件内有效
  • 静态局部变量只在定义的函数内有效,且程序仅分配一次内存,函数返回后,变量不会消失;
  • 局部变量在定义的函数内有效,但函数返回后失效
  • 全局变量、静态变量如果没有手动初始化,由编译器初始化为0,局部变量的值不可知
  • 静态局部变量、全局变量共享全局数据区,但静态局部变量只在定义的函数中可见,静态局部变量、局部变量在存储位置上不同,存在时限也不同,导致对二者操作的运行结果也不同
原文地址:https://www.cnblogs.com/hereisdavid/p/13861746.html