關鍵字static的作用

2021-08-14 21:51:32 字數 896 閱讀 6618

第一點,static修飾全域性變數

當乙個程序的全域性變數被宣告為static之後,他的中文名叫靜態全域性變數。靜態全域性變數和其他全域性變數的儲存地點並沒有區別,都是在.data段(已初始化)或者.bss(未初始化)內,但是它只在定義它的原始檔內有效,其他原始檔無法訪問它。

第二點,static修飾區域性變數

普通的區域性變數在棧空間上的分配,這個區域性變數所在的函式被多次呼叫時,每次呼叫這個區域性變數在棧上的位置都不一定相同。區域性變數也可以在堆上動態分配,但記得使用玩這個堆空間後要釋放。

static區域性變數中文名叫靜態區域性變數。它與普通的區域性變數比起來有如下幾個區別:

1、位置:靜態區域性變數被編譯器放在全域性儲存區.data(注意:不在.bss段內,原因見3)),所以它雖然是區域性的,但是在程式的整個生命週期中存在。

2、訪問許可權:靜態區域性變數只能被其作用域內的變數或函式訪問。也就是說雖然它會在程式的整個生命週期中存在,由於它是static的,它不能被其他的函式和原始檔訪問。

3、值:靜態區域性變數如果沒有被使用者初始化,則會被編譯器自動賦值為0,以後每次呼叫靜態區域性變數的時候都用上次呼叫後的值。

第三點:static函式

c++物件導向程式設計中的private函式,私有函式只有該類的成員變數或成員函式可以訪問。在c語言中,也有「private函式」,它就是接下來要說的static函式,完成物件導向程式設計中private函式的功能。

當程式中有很多個原始檔的時候,讓某個原始檔只提供一些外界需要的介面,其他的函式可能是為了實現這些介面而編寫,這些其他的函式並不希望被外界(非本原始檔)所看到,這時候就可以用static修飾這些「其他的函式」。

所以static函式的作用域是本原始檔,把它想象為物件導向中的private函式就可以了。

static關鍵字的作用

static關鍵字是c,c 中都存在的關鍵字,它主要有三種使用方式,其中前兩種在c c 語言中使用,第三種只在c 中使用 c,c 中具體細微操作不盡相同,本文以c 為準 1 區域性靜態變數 2 外部靜態變數 函式 3 靜態資料成員 成員函式 下面就這三種使用方式及注意事項分別說明 一 區域性靜態變數...

關鍵字static的作用

關鍵字static的作用是什麼?這個簡單的問題很少有人能回答完全。在c語言中,關鍵字static有三個明顯的作用 1在函式體,乙個被宣告為靜態的變數在這一函式被呼叫過程中維持其值不變。2 在模組內 但在函式體外 乙個被宣告為靜態的變數可以被模組內所用函式訪問,但不能被模組外其它函式訪問。它是乙個本地...

關鍵字Static的作用

1 修飾變數 區域性靜態變數和全域性靜態變數,都存在記憶體的靜態區 區域性靜態變數,在函式體內定義,只能在函式內部使用,同乙個檔案中的其他函式不能用。即使函式執行結束,這個靜態變數的值也不會被銷毀,函式下次使用時仍能用到這個值。全域性靜態變數,在函式外部定義,作用域 從定義處開始,到所在檔案結尾處結...