1、形参和局部(非静态)变量属于自动变量,在定义它们的块语句结束时撤销。特别地,形参所占有的存储空间在调用函数时创建,在函数结束后撤销。
2、默认情况下,局部变量的生命期局限于所在函数的每次执行期间。
3、静态局部变量的生命期跨越了该函数的多次调用,这种对象一旦被创建,在程序结束前都不会被撤销。
测试例子代码如下:运行结果图如下:
int count_calls_static() { static int ctr = 0; return ctr; } int count_calls() { int ctr = 0; return ctr; } int main() { cout<<"using static various"<<endl; for(int i =0; i != 10; i++) { cout<<count_call_static()<<endl; } cout<<"without using static various"<<endl; for(int i =0; i != 10; i++) { cout<<count_call()<<endl; } return 0; }