标签:关键点 return 生命周期 cstring ring tde tor 初始化 error
一、关键点
对象的生命周期:程序执行过程中,该对象存在的那段时间
局部对象:形参、函数体内部定义的变量
二、自动对象
自动对象:只存在于块执行期间的对象
包括:局部变量、形参
三、局部静态对象
特点:该种局部变量的生命周期一直到程序终止
声明局部静态变量:在声明语句前加上static关键字
补充:内置类型的局部静态变量的默认初始值为0
【例子】
#include <iostream> #include <vector> #include <cctype> #include <iterator> #include <stdexcept> #include <string> #include <cstring> using std::cin; using std::cout; using std::endl; using std::vector; using std::string; using std::runtime_error; int coco() { static int x = 0; x++; return x; } int main() { for (int i = 1; i <= 10; i++) cout << coco() << endl; //依次输出1 2 3 4 ... 10 return 0; }
解释:第一次调用coco()函数时,其中的局部静态变量x先被初始化为0,再进行自加变为1,所以第一次调用返回值为1;而第二次调用时,x的值已经存在且等于函数上一次退出时的x的值,也就是1,然后不再定义x(也就不初始化为0),再进行自加变为2,于是第二次调用返回值为2;依此类推。。
标签:关键点 return 生命周期 cstring ring tde tor 初始化 error
原文地址:http://www.cnblogs.com/xzxl/p/7658013.html