幾個基本概念
靜態儲存區: 程式執行期間系統分配的固定的儲存空間。
動態儲存區: 程式執行期間根據需要進行動態分配的記憶體空間。
靜態儲存區和動態儲存區都在記憶體中。
作用域:變數可被使用的範圍。
生存期:變數在程式執行過程中存留時間。
全域性變數(外部變數)
全域性變數全部存放在靜態儲存區;作用域從變數定義處開始到本程式檔案末尾;生存期從程式開始執行到程式執行結束(即程式執行期間不被釋放)。
靜態外部變數只能在本檔案中被引用。
不被static修飾的全域性變數可以通過extern被外部檔案引用。
區域性變數
自動變數(auto變數)都儲存在動態儲存區中;生存期和作用域都在其所在函式內。(系統預設沒有宣告儲存類別的區域性變數為自動變數,即auto可省略)
靜態區域性變數(static區域性變數)儲存在靜態儲存區中;作用域在函式內;生存期從程式執行到定義該變數開始到程式執行結束。
暫存器變數(register變數)存放在cpu的暫存器中,訪問效率高。(register可省略,系統自動識別使用頻繁的變數,存放在暫存器中。)
形參可定義為自動變數或者暫存器變數。
C語言的變數的作用域和生存期
c語言程式可以看成由一系列外部物件構成,這些外部物件可能是變數或函式。而內部變數是指定義在函式內部的函式引數及變數。外部變數定義在函式之外,因此可以在許多函式中使用。由於c語言不允許在乙個函式中定義其它函式,因此函式本身只能是 外部的 由於c語言 是以檔案為單位來組織的,在乙個源程式所有原始檔中,乙...
08 作用域和生存期
2019獨角獸企業重金招聘python工程師標準 變數的作用域 scope 變數起作用或有效的 範圍,空間。變數的生存期 life time 變數存在的時間範圍,時間。1 根據變數的作用域將變數分為全域性變數和區域性變數 全域性變數儲存在靜態資料區,區域性變數在堆疊中。全域性變數 global va...
作用域與生存期
1.作用域 作用域指識別符號能夠被使用的範圍 只有在作用域內識別符號才可以被使用。在此階段針對編譯和鏈結過程。1 函式中定義的識別符號,包括形參和函式體中定義的區域性變數,作用域都在函式內,也稱作函式域。2 檔案作用域也稱全域性作用域。定義在所有函式之外的識別符號,具有檔案作用域,作用域為從定義處到...