C語言中變數的作用域和生存期

2021-10-24 23:03:21 字數 683 閱讀 9027

幾個基本概念

靜態儲存區: 程式執行期間系統分配的固定的儲存空間。

動態儲存區: 程式執行期間根據需要進行動態分配的記憶體空間。

靜態儲存區和動態儲存區都在記憶體中。

作用域:變數可被使用的範圍。

生存期:變數在程式執行過程中存留時間。

全域性變數(外部變數)

全域性變數全部存放在靜態儲存區;作用域從變數定義處開始到本程式檔案末尾;生存期從程式開始執行到程式執行結束(即程式執行期間不被釋放)。

靜態外部變數只能在本檔案中被引用。

不被static修飾的全域性變數可以通過extern被外部檔案引用。

區域性變數

自動變數(auto變數)都儲存在動態儲存區中;生存期和作用域都在其所在函式內。(系統預設沒有宣告儲存類別的區域性變數為自動變數,即auto可省略)

靜態區域性變數(static區域性變數)儲存在靜態儲存區中;作用域在函式內;生存期從程式執行到定義該變數開始到程式執行結束。

暫存器變數(register變數)存放在cpu的暫存器中,訪問效率高。(register可省略,系統自動識別使用頻繁的變數,存放在暫存器中。)

形參可定義為自動變數或者暫存器變數。

C語言的變數的作用域和生存期

c語言程式可以看成由一系列外部物件構成,這些外部物件可能是變數或函式。而內部變數是指定義在函式內部的函式引數及變數。外部變數定義在函式之外,因此可以在許多函式中使用。由於c語言不允許在乙個函式中定義其它函式,因此函式本身只能是 外部的 由於c語言 是以檔案為單位來組織的,在乙個源程式所有原始檔中,乙...

08 作用域和生存期

2019獨角獸企業重金招聘python工程師標準 變數的作用域 scope 變數起作用或有效的 範圍,空間。變數的生存期 life time 變數存在的時間範圍,時間。1 根據變數的作用域將變數分為全域性變數和區域性變數 全域性變數儲存在靜態資料區,區域性變數在堆疊中。全域性變數 global va...

作用域與生存期

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