//varibole 变量时间 空间 生命期 和作用域
//局部变量 : 仅在定义的语句块中有效
//全局变量 : 仅在本文件中使用 全局变量 文件的全范围,不受欢迎,尽量少用
//静态变量 : 在本文件中使用,第
/*
全局变量就是对于整个程序,都可以调用的变量,但程序里面不一定就只是一个程序,也可能调用其他子程序。
只在子程序里面声明并起到作用的就是局部变量
静态变量就是指变量的地址不变,也就是说变量,本质上就是一个寄存器或者存储区,每个存储的位置都是有固定的地址,以便访问,但有时候,并不一定要一个变量就占据一个地址,如果我变量所储存的数据并不需要长期存在,那么在我不需要的时候搜索,就释放那个地址,以便其他程序利用这个地址,我不确定这个就叫自动型变量,我是没有用自动型变量来表示啦。其实也没有必要纠结于他们的表述,你只要知道变量本身就是一个存储空间罢了,并且知道怎样控制变量的作用位置,以及控制变量的存储空间就OK了。
*/
include<iostream>
using namespace std;
int counter();
int c; //全局变量 输出结果 1 2 3
main()
{
cout<< counter() << endl;
cout<< counter() << endl;
cout<< counter() << endl;
}
int counter()
{
// int c = 0;
c++;
return c; //输出结果 1 1 1 c 每次都会被初始化为 0
}
/*
int counter()//计数器函数
{
static int c = 0; //静态变量 输出结果 :1 2 3 不会释放空间,直到程序结束。。
c++;
return c;
}
*/
// 全局变量 extern 类型 变量名 但不能声明静态变量
//extern int c;