靜態全域性變數的定義:例如: static int value;
靜態全域性變數的初試化:未初始化的靜態全域性變數會自動初始化為0;也可以在定義的時候自己手動初試化。
靜態全域性變數的作用域:僅在當前檔案有效,儲存在靜態儲存區,在整個程式執行期間一直都存在。
#include
using
namespace std;
static
int value;
void
fun1()
void
fun2()
intmain()
靜態區域性變數的定義:例如: static int value;
靜態區域性變數的初試化:未初始化的靜態區域性變數會自動初始化為0;也可以在定義的時候自己手動初試化。
記憶體位置:靜態儲存區域。
靜態區域性變數的作用域:作用域為區域性作用域,當定義他的函式或者語句塊結束的時候她的作用域結束。但是當區域性靜態變數離開作用域後並沒有被銷毀,任然儲存在靜態記憶體當中,只是我們不能對其進行訪問,直到函式再次被呼叫,並且值保持不變。
**:
#include
using
namespace std;
void
fun(
)int
main()
cout <<
"主函式value的值:"
<< value << endl;
return0;
}
靜態函式定義宣告:預設的都是extern :例如 static int show (int);
靜態函式的作用域:只作用在本cpp檔案,不能被其他檔案所用,不會同其他cpp的同名函式起衝突。
靜態成員變數定義:例如:static int value;。
靜態成員變數的初試化:靜態成員變數不能通過初試化初始化列表初試化,必須初始化且只能在類外部進行初試化(不能在函式內部包括主函式)例如:int base::value = 10;
靜態成員變數的呼叫:①通過類名來呼叫 例如:base::value;②通過物件來呼叫 例如:base b;b.value;
靜態成員函式的定義:例如 static void show(){};
靜態成語=員函式的呼叫:①靜態成員函式只能呼叫靜態成員,不能呼叫非靜態的成員。②靜態成員函式可以通過類名來呼叫也可以通過物件來呼叫。
**:
#include
using
namespace std;
class
base
static
int value;
//靜態成員變數的定義};
int base::value =10;
//靜態成員變數在類外部初始化
intmain()
輸出:
靜態成員函式&&靜態成員變數歸納總結
①靜態成員是屬於這類的,所有的物件共同所有。
②靜態成員沒有隱含的this指標。(重點!!!!!)
③如果靜態成員是私有的則不能在類外直接訪問,私有的靜態成員變數可以在類外初始化,因為靜態成員變數必須初始化。
所有的靜態變數函式都是存放在靜態區。
編譯器:vs 2017
c static 關鍵字用法
一 static 變數 static變數大致分為三種用法 1.用於區域性變數中,成為靜態區域性變數.靜態區域性變數有兩個用法,記憶功能和全域性生存期.2.用於全域性變數,主要作用是限制此全域性變數被其他的檔案呼叫 3.用於類中的成員.表示這個成員是屬於這個類但是不屬於類中任意特定物件 1.靜態區域性...
C static關鍵字用法
1.全域性靜態變數 在全域性變數前加上關鍵字static,全域性變數就被定義成為全域性靜態變數,存放在靜態儲存區,在整個程式的執行期間一直存在 初始化 未初始化的全域性靜態變數會被自動初始化為0 自動物件的值是任意的,除非他被顯示初始化 作用域 作用域發生改變,僅在當前檔案中有效。2.區域性靜態變數...
C static關鍵字用法
1 被static關鍵字修飾的全域性函式或者變數具有檔案作用域,即只在當前檔案中可見。2 被static修飾的變數會被儲存在靜態儲存區,生命週期也為從定義直至程式結束。對於區域性變數,即使在函式退出後該靜態變數依然存在,然而卻也無法訪問。此外,static修飾的變數一生只會被初始化一次 這點經常被用...