H 第5章程序结构 图5-1描述了k的两个作用域的包含关系。根据作用 域可见性的规则,在具有包含关系的作用域中声明同 名标识符,外层标识符在内层不可见。程序的运行结 果验证了这一点
第5章 程序结构 图5-1描述了k的两个作用域的包含关系。根据作用 域可见性的规则,在具有包含关系的作用域中声明同 名标识符,外层标识符在内层不可见。程序的运行结 果验证了这一点
第5章程序结构 H k的文件作用域 k的块作用域 图5-1k的作用域示意图
第5章 程序结构 图5-1 k的作用域示意图 图5-1 k的作用域示意图 k的文件作用域 k的块作用域
第5章程序结构 H 52生存期 521静态生存期 此生存期与程序的运行期相同。静态生存期的变 量只要程序一开始运行,它就存在,直到程序运行结 束,此变量的生存期也就结束了。具有文件作用域的 变量具有静态生存期。如果要在函数内部的块作用域 中声明具有静态生存期的变量,则要使用关键字 static。 例如,下列语句声明的变量k便是具有静态生存期的变 量,也称为静态变量
第5章 程序结构 5.2 生存期 5.2.1 静态生存期 此生存期与程序的运行期相同。静态生存期的变 量只要程序一开始运行,它就存在,直到程序运行结 束,此变量的生存期也就结束了。具有文件作用域的 变量具有静态生存期。如果要在函数内部的块作用域 中声明具有静态生存期的变量,则要使用关键字static。 例如,下列语句声明的变量k便是具有静态生存期的变 量,也称为静态变量
H 第5章程序结构 static int k: 具有静态生存期的变量在固定的数据区域内分配 空间。如果具有静态生存期的变量未初始化,则自动 初始化为0。全局变量、静态全局变量和静态局部变量 都具有静态生存期
第5章 程序结构 static int k; 具有静态生存期的变量在固定的数据区域内分配 空间。如果具有静态生存期的变量未初始化,则自动 初始化为0。全局变量、静态全局变量和静态局部变量 都具有静态生存期
第5章程序结构 H 522局部生存期 在块作用域中声明的变量具有局部生存期。此生 存期诞生于声明点,而终止于其作用域的结束处。因 此,具有局部生存期的变量都具有块作用域。但反之 则不然,一般具有块作用域的变量都具有局部生存期, 但当在块作用域内将变量说明为静态变量时,该变量 则具有静态生存期。例如: void main() static int k
第5章 程序结构 5.2.2 局部生存期 在块作用域中声明的变量具有局部生存期。此生 存期诞生于声明点,而终止于其作用域的结束处。因 此,具有局部生存期的变量都具有块作用域。但反之 则不然,一般具有块作用域的变量都具有局部生存期, 但当在块作用域内将变量说明为静态变量时,该变量 则具有静态生存期。例如: void main( ) { static int k; //... }