//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;