C語言深入學習 checklist6 函式 變數

2021-06-16 05:37:58 字數 1269 閱讀 1647

函式

1.如何檢視函式在記憶體中的位址?

列印該函式名的值就可以了,函式名是乙個

const

的函式指標;

2.如何給乙個函式指標賦值?

下面這個例子,函式指標的賦值和呼叫都有了:

3.你是否會定義可變入參函式?

關於可變入引數函式的定義在

中很詳細。

4.你是否可以區分函式的實參和形參?

5.如何定義函式名,來表達函式的用途?

6.你是否使用

const

來修飾函式入參和返回值,以表達特定的含義?

const

修飾乙個函式的引數,表示在此函式過程中,該引數的值不會變化;

const

修飾乙個函式的返回值:

(1)返回值為內部型別,這是沒有意義的:它是乙個值,不是乙個變數,所以編譯器不會讓它成為乙個左值

;(2)

返回值是乙個使用者定義的型別的時候,這時候表示函式返回的值既不能直接賦值,也不能修改。

7.遞迴如何使用?

變數1.

全域性變數,區域性變數,常量分別儲存在記憶體中的什麼地方?

初始化的全域性變數、靜態變數儲存在資料段,未經初始化的全域性變數和未初始化的靜態變數儲存在

bss段,區域性變數儲存在棧,常量:字串常量儲存在文字段中;

const

修飾的全域性變數儲存在文字段中;

const

修飾的區域性變數儲存在堆疊段中。

2.對於不同型別的變數,你是否知道他們的作用域?

全域性變數,作用於全部的程式;區域性變數,作用於本層函式;

全部靜態變數,作用於本檔案(其它檔案不可見,就是

static

的隱藏)

區域性靜態變數,作用於本層函式,但是在本層函式結束後,生命期一直存在。

3.全域性變數和區域性變數是否可以重名?你是否在這樣做?

可以重名。

能,區域性會遮蔽全域性。要用全域性變數,需要使用

"::" ;

區域性變數可以與全域性變數同名,在函式內引用這個變數時,會用到同名的區域性變數,而不會用到全域性變數。

沒有這樣做。

4.區域性變數在函式退出後是否有效,為什麼?

區域性靜態變數退出後有效,因為區域性靜態變數儲存在資料段,生命週期為整個函式;

區域性非靜態變數在函式退出後無效,因為區域性非靜態變數儲存在堆疊段,函式結束後,會被系統釋放。

5.全域性變數為什麼不允許定義在標頭檔案中?有何危害?

當多個檔案都引用同乙個定義了全域性變數的標頭檔案時,會出現變數重複定義的情況

C語言深入學習一

之前學過c語言不過比較淺顯,好多功能都不知道為什麼是這麼得到的,機緣巧合之下,找到了關於c語言深入學習的資源。很是開心。今天就分享給大家。希望大家能有所收穫。c語言中的資料型別 主要分為整形,浮點型,字元型。其對應為int等,float等,char等。typedef 是給某種功能另外叫乙個名字。可以...

C語言深入學習之指標

一 指標是什麼?c語言裡,變數都是存放在記憶體裡,而記憶體其實就是一組有序位元組組成的陣列,每個位元組都有唯一的記憶體位址。cpu 通過記憶體定址對儲存在記憶體中的某個指定資料物件的位址進行定位。這裡,資料物件是指儲存在記憶體中的乙個指定資料型別的數值或字串,它們都有乙個自己的位址,而指標便是儲存這...

C語言 陣列的深入學習

深入學習一下陣列 單元是依次相連線的。而且這多個變數必須單獨訪問,不可以一起訪問的。因為他們的位址彼此相連,所以使用指標 訪問這些變數就很容易了。這個位址在編譯器中決定具體數值,具體數值和變數名繫結,變數型別決定了這個位址的延續長度。3 陣列中幾個關鍵符號 a a 0 a a 0 的理解 1 a就是...