a.普通局部变量

普通局部变量不初始化,默认值为随机数。

 

b.static局部变量

static局部变量不初始化,默认值为0。离开{},static局部变量不会释放,只有整个程序结束才释放。

注意:静态局部变量的作用域属于某个{},但是它的生命周期却是从编译阶段到整个程序结束。

 

c.普通全局变量

使用前需要声明所有的.c文件,只能定义一次普通全局变量,但是可以声明多次(外部链接)。

注意:全局变量的作用域是全局范围,但是在某个文件中使用时,必须先声明。

 

d.static全局变量

只能在定义所在的文件中使用此变量(内部链接)。不同的.c文件,可以定义一次static全局变量。

 

e.extern函数和static函数的区别(作用域)

extern函数所有文件都是调用,所有文件中只能定义一次extern函数。

static函数只能在定义所在的文件中调用此函数,不同文件,可以定义一次static函数。

 

怎样记忆C语言中的作用域和生命周期?

http://blog.csdn.net/u011616739/article/details/61621815

全局变量和静态变量是在程序编译期就分配到数据段或bss段中的,在整个程序的运行期,数据段和bss段中的内容是不会发生改变的。所以所有的全局变量和静态变量的生命周期必定是从程序编译到程序运行结束。而且如果全局变量和静态变量没有初始化,会统一默认初始化为0.

而局部变量是在程序的运行时,在栈中分配的内存,所以生命周期一定是从程序运行的某一个时刻开始。

相关文章:

  • 2022-12-23
  • 2021-07-14
  • 2021-06-07
  • 2022-12-23
  • 2021-09-09
  • 2021-09-12
  • 2023-04-11
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-08-31
  • 2021-10-31
  • 2022-02-28
  • 2022-12-23
相关资源
相似解决方案