區域性變數與全域性變數及其儲存方式

2021-10-22 16:28:51 字數 1160 閱讀 5903

1、變數及其儲存的分類

從變數的作用域的角度觀察,變數可以分為全域性變數和區域性變數;變數的儲存分為靜態儲存方式和動態儲存方式。

記憶體中供使用者使用的儲存空間可分為程式區、靜態存儲存區和動態儲存區三部分

全域性變數全部存放在靜態儲存區中,程式開始執行時給全域性變數分配儲存空間,程式執行完畢就釋放。

在動態儲存區存放以下資料:

①函式形式引數。在呼叫函式時給形參分配儲存空間。

②函式中定義的沒有用關鍵字static宣告的變數,即自動變數

③函式呼叫時的現場保護和返回位址等。

這裡是引用在c語言中,每乙個變數和函式都有資料型別和資料的儲存型別倆個屬性。在定義和宣告變數和函式時,一般應同時指定其資料型別和儲存型別。

2、區域性變數的儲存型別①自動變數程式中大多數變數屬於自動變數,自動變數用auto做儲存類別的宣告,關鍵字auto可省略,自動變數的資料儲存在動態儲存區。

②靜態區域性變數

靜態區域性變數的值在函式呼叫結束後不消失而繼續保持原值,即其占用的儲存單元不釋放,靜態區域性變數屬於靜態儲存類別,用關鍵字static說明。對於靜態區域性變數賦值語句只執行一次。

③暫存器變數

對暫存器的訪問速率遠高於對記憶體的訪問速率,系將變數存在暫存器中可以提高只想效率,用關鍵字register說明。

3、全域性變數的儲存類別

①、在乙個檔案中拓展外部變數的作用域

在變數定義點之前的函式引用外部變數時用關鍵字extern對該變數做『外部變數宣告』。

②、將外部變數的作用域擴充套件到其他檔案

在乙個檔案中定義外部變數,在另乙個檔案對變數做外部變數宣告

③、將外部變數的作用域限制在本檔案中

對全域性變數用static宣告即可,這種變數被稱為靜態外部變數。這種變數的作用域只限於本文本模組中。

區域性變數與全域性變數

根據c語言的說法,區域性變數 定義在方法內部的變數叫區域性變數 全域性變數 定義在方法外部的變數叫全域性變數。區域性變數和全域性變數的主要區別在於二者的生存週期不同。全域性變數的生存週期 靜態分配記憶體,程式執行期間常駐記憶體,直到程式執行結束。區域性變數的生存週期 動態分配記憶體,位於執行緒堆疊中...

全域性變數與區域性變數

區域性變數 在區域性 塊內定義 作用域在區域性 塊內,生命週期在區域性 塊內,結束時銷毀。include void test int main return 0 輸出 1111111111 全域性變數 在所有 塊外定義 作用域是整個工程,生命週期程式開始至結束。工程test 10 10 原始檔sum...

區域性變數與全域性變數

資料的儲存型別 一 變數的作用域 變數的作用域是指變數有效性的範圍,與變數定義的位置密切相關,作用域是從空間這個角度來描述變數的,按照作用域的不同,變數可分為區域性變數和全域性變數。1 區域性變數 在函式 或 塊 內部定義的變數,也稱為內部變數,區域性變數只能在定義它的函式 或 塊 內使用,其他函式...