學習筆記 可見性和生存期

2021-10-02 18:47:29 字數 817 閱讀 7330

可見性:又稱為作用域。指識別符號能夠被使用的範圍,只有在作用域內識別符號才可以被使用。

作用域是針對編譯和連線過程。

(1)函式中定義的識別符號,包括形參和函式體中定義的區域性變數,作用域都在該函式內,也稱作函式域。

(2)檔案作用域也成為全域性作用域,定義在所有函式之外的識別符號,具有檔案作用域,作用域從定義處到整個原始檔結束,檔案中定義的全域性變數和函式都具有檔案作用域。

//可見性,fun中的x對fun有效,main中x對main有效

intfun()

//編譯鏈結過後才能執行,才能談生存期,作用域(可見性)針對編譯鏈結過程。

int max=10;

intmain()

int min=0;

//進入主函式之前,建立全域性變數,放入到data區域

//const 定義的值在.cpp中會進行替換,在.c中不替換

生存期:也叫生命期。此階段針對的是程式的執行過程。

生命期指的是識別符號從程式開始執行是被建立,具有儲存空間,到程式執行結束時消亡,釋放儲存空間的時間段。。

(1)區域性變數的生存期:函式被呼叫,分配儲存空間到函式執行結束,釋放儲存空間。儲存在.stack區

(2)全域性變數的生存期:從程式執行前開始到程式執行後結束。儲存在.data區。

(3)動態生命期:識別符號 由特定的函式呼叫或運算來建立和釋放,如:呼叫malloc()為變數分配儲存空間,變數的生命期開始,而呼叫free()釋放空間或結束程式時,變數生命週期結束,具有動態生命週期的變數儲存在堆區.heap

more:

C語言可見性和生存期

作用域 可見性 指識別符號能夠被使用的範圍 只有在作用域內識別符號才可以被使用。此階段針對編譯和鏈結過程。1 函式中定義的識別符號,包括形參和函式體中定義的區域性變數,作用域都在該函式內,也稱作函式域。2 檔案作用域也稱全域性作用域。定義在所有函式之外的識別符號,具有檔案作用域,作用域為從定義處到整...

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

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

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

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