C 知識總結(6)

2021-08-05 23:02:33 字數 1018 閱讀 4339

extern可以置於變數或者函式前,以標示變數或者函式的定義在別的檔案中,提示編譯器遇到此變數和函式時在其他模組中尋找其定義。此外extern也可用來進行鏈結指定。

27 const關鍵字的作用?適用場合?使用注意事項?

(1)在c語言中用const去修飾乙個變數,表示這個變數是唯讀的,不可通過顯式的呼叫a去修改a的值,並且此時a仍然是乙個變 量,不能等同於常量;

(2)要注意const在宣告變數時所處的位置,位置不同,在意義上可能會有很大的不同。如果const在'*'左邊,則表示指標指向的變數的值不可變;如果const在'*'右邊,則表示指標的值是不可變的;

(3)c語言和c++中的const有很大區別。在c語言中用const修飾的變數仍然是乙個變數;而在c++中用const修飾過後,就變成常量了。

1.define是巨集定義

,程式在預處理階段將用define定義的內容進行了替換。因此程式執行時,常量

表中並沒有用define定義的常量

,系統不為它

分配記憶體

。const定義的常量

,在程式執行時在常量表中,系統為它

分配記憶體。

2.define定義的常量,預處理時只是直接進行了替換。所以編譯時不能進行資料型別檢驗。const定義的常量,在編譯時進行嚴格的型別檢驗,可以避免出錯。

3.define定義表示式時要注意「邊緣效應

」,例如如下定義:

#define n 2+3 //我們預想的n值是5,我們這樣使用n

int a = n/2;  //我們預想的a的值是2.5,可實際上a的值是3.5

c 語言提供了 typedef 關鍵字,可以使用它來為型別取乙個新的名字。 

#define 是 c 指令,也用於為各種資料型別定義別名,與 typedef 類似,但是它們有以下幾點不同:

typedef 僅限於為型別定義符號名稱,#define 不僅可以為型別定義別名,也能為數值定義別名,比如您可以定義 1 為 one。

typedef 是由編譯器執行解釋的,#define 語句是由預編譯器進行處理的。

c 知識總結 6

基類通過在其成員函式的宣告語句之前加上關鍵字virtual是的該函式執行動態繫結。任何建構函式之外的非靜態函式都可以是虛函式。關鍵字virtual只能出現在類內部的宣告語句而不能用於類外部的函式定義。如果基類把乙個函式宣告成虛函式,則該函式在派生類中隱式地也是虛函式。靜態型別與動態型別 表示式的靜態...

c 知識總結

第一章節 1.類的兩種定義形式 1 在類中定義成員函式 2 在類之後定義成員函式 2.class 和struct的區別 1 c的struct沒有方法,而c 的struct可以有方法 函式 2 c的struct的成員沒有訪問許可權,c 的class則有,且預設許可權私有 3 c的struct並不能為空...

C 知識總結

c 總結 一丶運算子過載 1丶基本概念 將運算子看作是一種特殊的函式 運算元是函式的引數,運算結果是函式的返回值 2丶運算子函式 定義過載運算子和定義普通函式類似 函式名由關鍵字operator 和其後要定義的運算子組成 operator operator operator 返回型別 運算結果的型別...