以下内容为自学笔记缺乏严谨性,如有错误和不足请大佬指正
(1)全局变量与局部变量定义位置的区别?
全局变量定义位置在全局/静态区 全局静态变量定义位置在全局/静态区
局部变量定义位置在栈区 局部静态变量定义位置在全局/静态区
(2)全局变量的生命周期与作用域是什么?
全局变量
生命周期是程序的开始到结束.
作用域是全局作用域(只需要在一个源文件中定义,就可以作用于所有的源文件)可以通过extern在其他文件中使用,但不可以二次赋值.
全局静态变量
生命周期也是与整个程序同在的,从程序开始到结束一直起作用.
全局静态变量作用域只在定义它的一个源文件内,其他源文件不能使用它.
(3)局部变量的生命周期与作用域是什么?
局部变量
生命周期是被声明到当前函数的结束.
作用域是局部函数内,在定义该变量的函数内,只要出了该函数,该局部变量就不再起作用.
局部静态变量
生命周期是其第一次初始化后就一直存在直到程序结束.
作用域只在定义它的函数内可见,出了该函数就不可见了.