练习6.6:说明形参,局部变量以及局部静态变量的区别。编写一个函数,同时用到这三种形式。
答:形参和函数体内部定义的变量统称为局部变量。它们对函数而言是局部的,仅在函数的作用域内可见。局部变量的生命周期依赖于定义的方式。局部静态变量在程序的执行路径第一次经过对象定义语句时初始化,并且直到程序终止时才被销毁,在此期间即使对象所在的函数结束执行也不会对它有影响。局部静态变量的生命周期贯穿函数调用及之后的时间。
练习6.7:编写一个函数,当它第一次被调用时返回0,以后每次被调用返回值加1。
答:见云盘程序。
练习6.7
/*
*练习6.7
*日期:2015/6/9
*问题描述:练习6.7:编写一个函数,当它第一次被调用时返回0,以后每次被调用返回值加1。
*功能;就是一个简单的累加器,对185页书上例子改写一点点就可以
*作者:Nick Feng
*邮箱:nickgreen23@163.com
*/
#include <iostream>
using namespace std;
size_t count_calls()
{
static size_t ctr = 0;
return ctr++; //++ctr 和 ctr++的区别
}
int main()
{
for (int i = 0; i != 10; ++i)
cout << count_calls() << endl;
return 0;
}