static在C與C 中的區別

2021-07-27 12:58:05 字數 1012 閱讀 9966

在c語言中static的作用如下

第一、在修飾變數的時候,static修飾的靜態區域性變數只執行一次,而且延長了區域性變數的生命週期,直到程式執行結束以後才釋放。

第二、static修飾全域性變數的時候,這個全域性變數只能在本檔案中訪問,不能在其它檔案中訪問,即便是extern外部宣告也不可以。

第三、static修飾乙個函式,則這個函式的只能在本檔案中呼叫,不能被其他檔案呼叫。static修飾的區域性變數存放在全域性資料區的靜態變數區。初始化的時候自動初始化為0;

(1)不想被釋放的時候,可以使用static修飾。比如修飾函式中存放在棧空間的陣列。如果不想讓這個陣列在函式呼叫結束釋放可以使用static修飾

(2)考慮到資料安全性(當程想要使用全域性變數的時候應該先考慮使用static)

在c++中static關鍵字除了具有c中的作用還有在類中的使用

在類中,static可以用來修飾靜態資料成員和靜態成員方法

靜態資料成員

(1)靜態資料成員可以實現多個物件之間的資料共享,它是類的所有物件的共享成員,它在記憶體中只佔乙份空間,如果改變它的值,則各物件中這個資料成員的值都被改變。

(2)靜態資料成員是在程式開始執行時被分配空間,到程式結束之後才釋放,只要類中指定了靜態資料成員,即使不定義物件,也會為靜態資料成員分配空間。

(3)靜態資料成員可以被初始化,但是只能在類體外進行初始化,若為對靜態資料成員賦初值,則編譯器會自動為其初始化為0

(4)靜態資料成員既可以通過物件名引用,也可以通過類名引用。

靜態成員函式

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

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

(3)靜態成員函式主要用來方位靜態資料成員而不能訪問非靜態成員

static在c和c 中的區別

c 類的static使函式成為類成員,而不是例項成員 static在c裡面可以用來修飾變數,也可以用來修飾函式。先看用來修飾變數的時候。變數在c裡面可分為存在全域性資料區 棧和堆裡。其實我們平時所說的堆疊是棧而不包含堆,不要弄混。int main a是全域性變數,b是棧變數,c是堆變數。static...

C 中static與const區別

const關鍵字可以修飾變數 物件 函式等 const aa是變數 加const後是常量 const piont apoint是類 a是物件 int x constx 函式 舉例說明 include using namespace std class point point point int x,...

static在C和C 中的用法和區別

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