C C 語言 static關鍵字的用法

2021-06-23 07:13:15 字數 765 閱讀 5899

c/c++中static關鍵字可以從以下三個方面理解

static int a;

本質意義為static修飾的變數被分配在靜態儲存區,不是在棧上,也不是在堆上。

所以有以下應用場景。

1,c語言中,會在初次執行的時候進行初始化,整個程式執行期間都不釋放。

如果變數為c++ 類物件,則在main()之前執行建構函式,進行初始化。

2,由於儲存區不是在棧上,所以函式中用static修飾的區域性變數就有「記憶性」。

也就是指在兩次函式呼叫時, 在第二次呼叫進入時, 能保持第一次呼叫退出時的值.

static int a;

static void foo();

用static修飾的函式或者變數,只能在定義它的檔案內被使用。

這樣不同的人編寫不同的函式時,不用擔心自己定義的函式,是否會與其它檔案中的函式同名。

c++重用了這個關鍵字,並賦予它與前面不同的第三種含義:表示屬於乙個類而不是屬於此類的任何特定物件的變數和函式.

與普通成員函式的最大區別, 是static修飾的變數/函式在此類中的唯一性.

這也是」屬於乙個類而不是屬於此類的任何特定物件的變數和函式」。

例如:class myclass

public:

static int getnumber() ;

private:

static in mnum;

myclass a, b;

則a,b 中只有乙份nnum,它既不屬於a,也不屬於b。



C C 的static關鍵字

static主要有三個作用 1 區域性靜態變數 2 外部靜態變數 函式 3 靜態資料成員 成員函式 前兩種c和c 都有,第三種僅在c 中有,下面分別作以下介紹 一 區域性靜態變數 在c c 中,區域性變數按照儲存形式可分為三種auto,static,register。其中register不常用到,下...

static關鍵字(C C 語言中的作用)

類中靜態成員注意事項 1 類中靜態成員分為 靜態資料成員 和 靜態成員函式。2 靜態資料成員與全域性物件的區別 1 static成員的名字是在類的作用域中,可以避免命名衝突。2 static資料成員可以是私有成員,而全域性物件不可以。3 static成員遵循正常的訪問規則。4 類中static資料成...

C C 中的static關鍵字

關鍵字extern和static用來說明具有靜態儲存期的變數和函式。用static宣告的區域性變數只能被定義該變數的函式所識別,但是不同於自動變數的是,static變數在其函式被呼叫退出後,仍保留其值。下次函式被呼叫時,可以訪問最近一次被修改後的值。static變數的宣告方法如下 static in...