static的作用 C語言

2021-09-02 09:58:00 字數 1073 閱讀 9022

****:**

第一、static在修飾區域性變數的時候,只執行一次,並且延長了區域性變數的生命週期,程式執行結束才釋放。static區域性變數存放在全域性資料區的靜態變數區。初始化的時候自動初始化為0.

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

第三、static修飾乙個函式,則這個函式只能在本檔案中呼叫,不能被其他檔案呼叫。

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

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

驗證一下第一點:

#include

intstatic_test

(void

)int

main()

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

靜態資料成員

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

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

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

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

靜態成員函式

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

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

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

C語言 static的作用

2017年第八題第一問 2017年 第八題 1 include int fun main 列印出來的是4,5 因為static修飾的變數y,在第一次呼叫的時候就初始化,直到方法結束了就釋放,第二次呼叫fun函式的時候,y的變數是2 所以第一次呼叫的fun 為2 2 4 第二次呼叫的fun為2 3 5...

c語言中static作用

本文根據多篇網路部落格整合而成一.c程式一直由下列部分組成 1 正文段 cpu執行的機器指令部分 乙個程式只有乙個副本 唯讀,防止程式由於意外事故而修改自身指令 2 初始化資料段 資料段 在程式中所有賦了初值的全域性變數,存放在這裡。3 非初始化資料段 bss段 在程式中沒有初始化的全域性變數 核心...

C語言之static作用

在c語言中,static的字面意思很容易把我們匯入歧途,其實作用有三條 1 第一條也是最重要的一條 隱藏 當我們同事編譯多個檔案時,所有未加static字首的全域性變數和函式都具有全域性可見性,舉例來說 同時編譯2個原始檔 a.c和main.c 下面是a.c的內容 chara a global va...