解析關鍵字static

2021-08-08 22:50:41 字數 706 閱讀 4845

大家都知道static的意思是靜態的,靜止的,同樣的,不管在c語言還是c++中,static作為關鍵字的意思仍為靜止的,靜態的。

現在我們就來仔細談下static在c語言和c++中的用法。

c語言

static可修飾變數和函式。

1.static在修飾變數時,又可分為修飾區域性變數和全域性變數。

(1)在修飾區域性變數的情況下,static可改變區域性變數的儲存位置,即將變數從堆疊區改存為靜態區。這就意味著改變了區域性變數的生命週期——從程式一開始到程式結束,但是作用域沒有變化。

(2)在修飾全域性變數的情況下,static可改變全域性變數的鏈結屬性,並且對未賦初值的變數進行賦值(預設賦值為0)。

2.static在修飾函式時 ,改變了函式的外部鏈結屬性,保護了函式在呼叫時的安全。

c++

(1)因為c++具有強大的相容性,所以static在c語言中的用法可延續到c++中。另外,在c++中,還增加了其他的用法。這裡最大的用法就是在實現類的時候。

(2)static既可以修飾類裡的成員變數又可以修飾類裡的成員函式。

在修飾類的成員變數時,static型別的成員變數並沒有計算到類的大小中去,這就意味著所有的類物件共用乙份static型別的成員,屬於整個類而非類的物件,不容易在類外修改它。

在修飾類的成員函式時,類的靜態成員函式是屬於整個類而非類的物件,既它沒有this指標,這就導致了它僅能訪問類的靜態資料和靜態成員函式。

this關鍵字 static關鍵字

1.當成員變數和區域性變數重名,可以用關鍵字this來區分 this 代表物件,代表那個物件呢?當前物件 this就是所在函式所屬物件的引用 簡單說 那個物件呼叫了this所在的函式,this就代表哪個物件 this也可以用於在建構函式中呼叫其他建構函式 注意 只能定義在建構函式的第一行,因為初始化...

C C 中static關鍵字解析

c是面向過程語言,在c中,static關鍵字主要作用有以下三個作用 全域性靜態變數 區域性靜態變數 靜態函式 c 在c的基礎上,拓展了static在物件導向設計中的作用,新增了以下兩種功能 靜態資料成員 靜態成員函式 下面將一一介紹static的5種作用。靜態全域性變數和全域性變數都作為資料共享而存...

C語言static關鍵字解析

1 概述 static 宣告的變數在c語言中有兩方面的特徵 1 變數會被放在程式的全域性儲存區中,這樣可以在下一次呼叫的時候還可以保持原來的賦值。這一點是它與堆疊變數和堆變數的區別。2 變數用static告知編譯器,自己僅僅在變數的作用範圍內可見。這一點是它與全域性變數的區別。2 問題 static...