C 之變數的作用域,生存期,可見性

2021-09-07 15:33:52 字數 593 閱讀 4593

作用域是表示某個識別符號在什麼範圍內有效;

可見性是指識別符號是否可見,可引用;

生存期,是指程式中的簡單變數和類的物件,它們同自然界中的萬物一樣。也有自己的產生和消亡的生存期,變數和物件的生存期包含靜態生存期和動態生存期。具有靜態生存期的變數和物件,它們的生存期和程式執行相同;除了具有靜態生存期的變數和物件,其餘的變數和物件則具有動態生存期。具有動態生存期的變數和物件,它們處於被宣告處產生,於自身的作用域結束處釋放。

全域性變數有檔案作用域,也就是說,在整個檔案作用域中,除了定義了同名區域性變數塊以外的其他地方(可見性問題),都可以直接引用全域性變數;區域性變數就是 具有塊作用域的物件。

區域性變數也可以有靜態生存期,靜態區域性資料的生存期並不與區域性作用域一致,它的生存期一直延續到程式執行結束。它產生於所在的函式第一次被呼叫、該區域性靜態變數被建立時。函式返回時,靜態區域性變數處於不可訪問的休眠狀態。當再次呼叫該函式時,靜態區域性變數又甦醒過來,處於可訪問狀態,與動態區域性變數的區別在於,靜態區域性變數甦醒時,並不需要初始化,而是保持上次休眠狀態開始之前的值。

可見性與作用域的區別:幾乎是一樣的,沒有太大的區別,變數的作用域影響著變數的可見性。例如,內外層同時定義同名變數,則外層變數對於內層來說就是不可見的。

c 變數的作用域 生存期和可見性

範圍 在乙個函式內部定義的變數,作用範圍只限於本函式體內。生存期 程式執行到本函式才會給區域性變數分配記憶體單元,函式執行完畢區域性變數所佔的儲存單元就被釋放 在函式體外部定義的變數是全域性變數,可以被本檔案所有其他函式訪問使用。作用域 所有檔案。在乙個cpp定義的全域性變數在另乙個cpp中使用,應...

note C 作用域 可見性與生存期

作用域是乙個識別符號 變數 常量 函式等 在程式正文中有效的區域。函式原型作用域 區域性作用域 塊作用域 類作用域 全域性作用域 檔案作用域 命名空間作用域。即參數列。函式原型中的引數,其作用域始於 結束於 例 double area double radius 區域性作用域舉例 void fun ...

變數的生存期與可見性例題

接下來舉一具體例子予以說明。other函式中a,b為靜態區域性變數,具有全域性壽命,區域性的可見性。i為全域性變數。靜態變數不初始化預設值為0。主函式中a為靜態區域性變數,b.c為動態變數。第一次主函式輸出 i 1,a 0,b 10,c 0 第一次other函式輸出 全域性變數i 32,a 2,b為...