一、说明形参、局部变量以及局部静态变量的区别。编写一个函数,同时用到这三中形式。
知识点1:局部变量:形参和函数体内部定义的变量统称为局部变量(注意其作用域)。
知识点2:局部静态对象:直到程序的结束才被销毁的对象,不受块的约束。
知识点3:形参:是一种自动对象。函数在开始的时候为形参申请存储空间,因为形参定义在函数体作用域之内,所以一但函数终止,形参也开始被销毁。
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int fact()//函数的声明及定义
{
static int My_number = 0;//局部静态变量
My_number++;
return My_number;
}
int main()
{
for (int i = 0; i <= 10; i++)//i变量就是一个局部变量,只在for语句块中存在
{
cout << fact() << endl;
}
cout << fact() << endl;
}
二、编写一个函数,当它第一次被调用时返回值为0,以后被调用后返回值为1。
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int fact()//函数的声明及定义
{
static int My_number = 0;//局部静态变量
My_number++;
if (My_number == 1)//判断局部静态变量的大小即可
return 0;
else
return 1;
}
int main()
{
for (int i = 0; i <= 10; i++)//i变量就是一个局部变量,只在for语句块中存在
{
cout << fact() << endl;
}
cout << fact() << endl;
}