static靜態變數在不同位置的不同作用

2021-08-21 03:16:29 字數 845 閱讀 2099

static可以在很多位置發揮作用,下面我來一一講解它們的作用。

靜態區域性變數

1.分配空間在靜態資料棧上

2.作用域只侷限於當前的函式範圍內(區域性)

3.生命週期為整個程式,不會隨著當前的函式結束而結束

4.首次初始化時賦值生效,以後的初始化賦值自動跳過

例項:

void totaltimes

double pai = getpai();//錯誤

類的靜態成員變數

1.存在於靜態資料區

2.作用於為整個類,可以直接用類+作用域符呼叫。

3.所有該類的物件都可以共享。

4.也有public,private,protected的區分

5.若要在類內初始化,除非是static常量;否則要在類內宣告,類外初始化,且不能重複static關鍵字。

例項:

class person

string person::soul="angel";//正確,類外初始化。

person tom;

person jerry;

cout

<類的靜態成員函式

(1)靜態成員函式和靜態資料成員一樣,他們都屬於類的靜態成員,而不是物件成員。

(2)非靜態成員函式有this指標,而靜態成員函式沒有this指標。

(3)靜態成員函式主要用來訪問靜態資料成員而不能訪問非靜態成員。(但是可以訪問全域性變數)

int age=24;

class

b };

static 靜態變數

function a a a a 輸出什麼是static靜態變數?以下為在c語言中的理解 靜態變數 型別說明符是static。靜態變數屬於靜態儲存方式,其儲存空間為記憶體中的靜態資料區 在靜態儲存區內分配儲存單元 該 區域中的資料在整個程式的執行期間一直占用這些儲存空間 在程式整個執行期間都不釋放 ...

Static 靜態變數

1.靜態變數 是由靜態修飾符static來修飾的,是類的變數,但是不屬於任何乙個類的具體物件,也就是說,也就是說,對於該類的任何乙個具體的物件來說,靜態變數是乙個公共的儲存單元,任何乙個類的物件在訪問這個儲存單元時,都會獲得乙個同樣的數值,同樣,任何乙個類在修改這個儲存單元時,也都會完成相同的操作。...

靜態變數static

static資料的初始化 加上static限定的字段,是所謂的類字段,也就是說這個欄位的擁有者不是物件而是類。無論建立多少物件,static資料都只有乙份。類內總是先初始化static欄位,再初始化一般字段。接著初始化構造器。但是如果不建立這個類的物件,那這個物件是不會進行初始化的,並且只執行一次。...