第八章 變數的作用域和儲存類別

2021-10-05 12:00:32 字數 1687 閱讀 8970

主要問題:變數的作用域生存週期

8.2變數的儲存類別

8.3 函式的儲存分類

【定義】:給變數分配確定的儲存單元;

【說明】:說明變數的性質,並不是分配確定的儲存單元;

​ c語言中變數按作用域範圍分為:區域性變數和全域性變數。

【區域性變數】:在乙個函式內部或復合語句內部定義的變數。

作用域:定義該變數的函式內或定義該變數的符合語句內,只能在定義它的函式或復合語句內才能使用。

【注意】:

1.形參變數屬於被調函式的區域性變數,實參屬於主調函式的區域性變數。

2.區域性變數可同名,即允許在不同的函式中使用相同的變數名,它們代表不同的物件,分配不同單元,互不干擾。

【例】

#includeint a=3,b=5;   //a,b為全域性變數,作用範圍到本程式結束

max(int a,int b)

/*a、b為區域性變數*/

main()

//執行結果:8

【全域性變數】:在函式外部任意位置定義的變數。

作用域:從定義變數的位置到本原始檔結束,它可以被本源程式檔案的其他函式共用。

變數的儲存方式按變數值的生存期可劃分為靜態儲存方式和動態儲存方式。

【靜態儲存方式】:程式執行期間分配固定的儲存空間。

【動態儲存方式】:程式執行期間按需要動態分配儲存空間。

【格式】:儲存類別 資料型別 變數名1…變數名n

eg:auto int i,j 或int auto i,j

動態儲存區存放資料:

1.函式形參變數,呼叫時分配儲存空間。

2.區域性變數。

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

​ 區域性變數可宣告為自動變數,全域性變數不能宣告為自動變數。

特點:

1.記憶體分配:呼叫函式或執行復合語句是時,在動態儲存區為其分配儲存單元,執行結束後所佔空間立即釋放。

2.變數初值為隨機值。若賦初值,則每次函式被呼叫時執行一次賦值操作。

3.生存期:函式或復合語句執行期間。

4.作用域:自動變數定義位置開始到函式體(或復合語句)結束。

【說明】:1.除形參外,區域性變數和全域性變數都可定義為靜態變數。

【說明】:將變數的值儲存到cpu的暫存器中,不佔據記憶體單元,且訪問速度快。

​ 適用於:頻繁引用的少數變數。

第八章 動態儲存管理

一 選擇題 1.動態儲存管理系統中,通常可有 種不同的分配策略。長沙鐵道學院1998 三 3 2分 a 1 b.2 c.3 d.4 e.5 二 判斷題 1 在夥伴系統中的夥伴是指任意兩塊大小相同 位置相鄰的記憶體塊。北京郵電大學2000 一 8 1分 2 在動態儲存管理系統中做空間分配時,最佳適配法...

第八章 JSTL和EL

el表示式語法 el 表示式 1.點操作符 用它來訪問物件的某個屬性,如 可以訪問employee物件的employee的屬性 2 操作符 如 可以訪問雇員的計算機屬性。它可用於當屬性名中含特殊字元如 或 等的情況。訪問陣列,如果有乙個物件名為array的陣列,那麼可以根據索引值來訪問其中的元素,如...

第八章 位址和指標

1.變數的位址和指標 乙個變數實質上是代表了 記憶體中的某個儲存單元 計算機的記憶體是以位元組為單位的一片連續的儲存空間,每乙個位元組都有乙個編號,這個編號就稱為記憶體位址。因為記憶體的儲存空間是連續的,所以記憶體中的位址號也是連續的,並且用二進位制來表示。每個變數的位址是指該變數所佔儲存單元的第乙...