对C++中作用域和生存期的认识

来源:互联网 发布:高三优化方案丛书官网 编辑:程序博客网 时间:2024/05/11 19:37

作用域,顾名思义,就是作用的区域,分为函数原型作用域,局部作用域,类作用域和命名空间作用域。它们的作用范围按此顺序变大。

生存期,顾名思义,就是生存的日期和时间,分为静态生存期和动态生存期,静态生存期有两种情况,1.命名空间作用域中的变量具有静态生存期,2.在局部作用域中用static声明的变量也具有静态生存期。除了这两种情况之外的变量都具有动态生存期。

在局部作用域中声明的变量如果用static修饰,则具有静态生存期,注意,虽然在整个程序中这个变量都存在,但它的作用域还是原来的作用域,而且这个变量叫做静态局部变量,也就是说生存期和作用域没有关系。

静态局部变量有一些特点:

基本类型的静态局部变量没有初始化,在用0初始化。

在整个程序的运行过程中,静态局部变量的值都不会变,直到赋新值。

静态局部变量在函数调用的过程中只在程序第一次运行时初始化,而且只有一个副本,递归调用也是这样。

动态变量的一些特点:

生存期从声明处到所在的块结束。

每次函数调用都要重新赋值,再运行。

以上就是我对作用域和生存期的一些认识。

0 0
原创粉丝点击