C static關鍵字的用法

2021-09-27 22:10:03 字數 1729 閱讀 9723

靜態全域性變數的定義:例如: 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修飾的變數一生只會被初始化一次 這點經常被用...