只能说局部对象/变量作用于是方法等区域内,但是生存周期就得看你自己的定义了
C++中局部对象/变量有三种:
自动对象(autom atic object),寄存器对象(register object) ,局部静态对象
有时希望函数中的局部变量的值在函数调用结束后不消失而保留原值就应该指定局部变量为静态局部变量,用关键字static进行声明
静态局部变量属于静态存储类别,在静态存储区内分配存储单元。在程序整个运行期间都不释放。而自动变量(即动态局部变量)属于动态存储类别,占动态存储空间,函数调用结束后即释放。
静态局部变量在编译时赋初值,即只赋初值一次;而对自动变量赋初值是在函数调用时进行,每调用一次函数重新给一次初值,相当于执行一次赋值语句。
如果在定义局部变量时不赋初值的话,则对静态局部变量来说,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)。而对自动变量来说,如果不赋初值则它的值是一个不确定的值。
再者,还有一个最简单的例子,如果你用new的方式创建了指针变量,方法结束时如果你不delete,它是一直不会释放的