C語言簡單筆記之八

2021-10-07 20:50:34 字數 1502 閱讀 7592

接著回顧函式的內容
一、變數的儲存屬性

1.變數的作用域

指乙個變數能夠起作用的有效範圍,它由變數的定義位置決定

1).區域性變數:**在乙個函式或復合語句內部定義的變數成為區域性變數,其只在定義它的函式或復合語句內才能使用。**編譯時,編譯系統不為區域性變數分配記憶體單元,而是在程式的執行中,當區域性變數所在函式被呼叫時,編譯系統根據需要臨時分配記憶體,呼叫結束,空間釋放

2).全域性變數

在所有函式之外定義的變數稱為外部變數,外部變數是全域性變數。全域性變數可以為本檔案中所有函式共用,其有效範圍從定義變數的位置開始到本原始檔結束

注:如果在乙個函式中改變了全域性變數的值,就能影響到其他函式

在同乙個原始檔中,若全域性變數與區域性變數同名,則在區域性變數的作用範圍內,全域性變數不起作用。乙個教材上的例子

int x=

127,y=

-100

;/*定義x,y為全域性變數*/

voidf1(

)int

main()

voidf2(

)執行結果

in main,before invoking f1,x=

2,y=

3in f1,x=

127,y=

-100

in main,after invoking f1,x=

2,y=

3in f2,x=

128,y=

-99

全域性變數的作用範圍只有函式f1()和f2()

2.變數的生存週期

指變數在記憶體中占用記憶體單元的時間。當使用乙個變數時,需要首先在記憶體中給這個變數開闢相應的儲存單元,這時可以說這個變數正處於生存期內。若此變數占用的記憶體單元被釋放,則這個變數在其生存期之外

3.變數的儲存型別

自動型別auto,外部型別extern,靜型別static,暫存器型別register

1).**auto 資料型別說明符 變數名;

或 資料型別說明符 變數名; **

自動變數包括函式內定義的區域性變數,函式的形參和復合語句中說明的變數。其作用範圍是在所說明的函式中,其他函式不能自取。每次呼叫函式時必為自動變數賦初值

2).外部變數

extern 資料型別說明符 變數名

使用的兩種情況:

全域性變數的定義與引用在同一原始檔中,若引用位置先於全域性變數的定義,需要在使用之前用extern對該變數進行宣告。

若變數的定義與引用在不同的原始檔中,需要在引用該變數的原始檔中進行宣告

3).靜態變數

靜態變數一般分為區域性靜態變數(內部靜態變數)和全域性(外部)靜態變數。

注:對區域性靜態變數是在編譯時賦初值的,即只賦初值一次,在程式執行時它已有初值,以後每次呼叫函式時,不再重新賦初值而是保留上次函式呼叫結束時的值

全域性靜態變數的作用域僅在定義它的那個檔案中

以上內容來自清華大學出版社出版的教材:c語言程式設計

C語言簡單筆記之六

迴圈結構程式設計一 while迴圈語句 用來實現 當型 迴圈結構 while 表示式 語句 1.while後的表示式是迴圈控制的條件。while語句的執行流程 先計算表示式的值,若表示式的值不為零,執行其後的語句,再次判斷while後括號中的表示式的值,若表示式的值非零,再次執行語句,直到while...

C語言簡單筆記之十一

指標一 指標變數的定義 基型別 指標變數名 指標就是變數的位址。如果乙個變數中存放的是指標,那麼這個變數就叫指標變數 二 指標變數的引用 1 運算子 稱為取位址運算子 2 運算子 稱為指標運算子,或指向運算子,也稱為 簡介訪問 運算子,例 int k,kpointer kpointer k 將k的位...

C語言簡單筆記之十二

指標的運算一 指標的賦值運算 若有型別定義 int a,b 5 p1,p2 則乙個指標變數可以通過一下賦值方式得到值 1.通過求位址運算子 獲得變數的位址,並賦給指標變數 p1 a 2.將一維陣列b的起始位址值賦給指標變數p1,由於一維陣列名為該陣列的首位址,所以只要執行語句 p1 b 3.若要將陣...