c語言的變數

2021-10-08 06:30:50 字數 1311 閱讀 7465

在程式執行期間,由系統分配固定的儲存空間

全域性變數全部是靜態儲存。程式開始時給全域性變數分配儲存空間,結束時釋放。

在程式執行期間,根據需要進行動態的分配儲存空間方式。一般在函式呼叫前後分配和釋放。

a、函式形參,在呼叫前沒有儲存空間,呼叫時分配儲存空間。

b、函式中定義的沒有用static宣告的變數;

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

auto:

區域性變數預設為auto,即動態儲存。

static:

用於區域性變數,使他儲存在靜態區;

用於外部變數,使他只能在本檔案中使用,不能被其他檔案extern。

register:

將某區域性變數儲存在cpu的register中,先在基本不使用。

extern:

擴充套件外部變數的作用域。

區域性變數既可以存放在動態儲存區,也可以存放在靜態儲存區。

a、auto區域性變數

宣告:auto int i=0; //可以省略

注意點:預設形式的儲存方式。包括形參和大多數區域性變數。

b、static區域性變數

宣告:static int i=0;

作用:保留函式呼叫後的值,占用的儲存單元不釋放。下次呼叫函式時時變數已經有值。

程式執行完成後載釋放。

c、register暫存器區域性變數

宣告:register int i=0;

作用:暫存器訪問速度遠高於記憶體訪問速度。

變數存放在記憶體中時,每次使用需要發出指令,將記憶體中該值送到運算器中。

對於某些需要頻繁使用的值,可以將值存放在暫存器中。

一般現在不需要使用這種方式。

全域性變數都是存放在靜態儲存區的。

對於全域性變數來說,重要的它的作用域。預設的全域性變數的作用域是宣告處到程式末尾。

int

main()

int a,b,c;

//……

在其他檔案下用extern宣告所需變數。

在編譯時遇到extern:

先在本程式內尋找,如果找到則進行處理;

如果沒找到,則在連線時從其他檔案中找該外部變數的定義。

在外部變數(全域性變數)前面加上static

靜態外部變數不能被本檔案外其他檔案引用。

建立儲存空間的宣告稱為定義:     int a

不建立儲存空間的宣告稱為宣告: extern a

c語言的變數

資料變數的三個屬性 作用域 連線屬性和儲存型別。程式 中的變數在編寫是要考慮三個屬性,同時程式要經歷編譯,鏈結和執行時的記憶體分配。1.作用域 在編譯時有四種不同型別的作用域 檔案作用域,函式作用域,塊作用域和原型作用域 1 塊作用域 內的 段。2 檔案作用域 以檔案為單位,可以通過 include...

C語言的變數

1 變數的資料型別 整型等 2 變數的作用域 區域性變數和全域性變數 3 數量的儲存型別 register static auto 當乙個可執行檔案被執行 a.out 即建立乙個程序。此時,系統會為程序分配活動空間,此空間一般為虛擬空間,一般為4gb。作業系統不會通過完整對映將虛擬記憶體對映到物理聶...

C語言 變數

整形變數的定義 有符號 int a int a 有符號整形 範圍 0 2 32 long int a long a 有符號長整形 範圍 0 2 32 short ing a short a 有符號短整型 範圍 0 2 16 無符號unsigned int a unsigned a 無符號整形 範圍 ...