C 易混部分

2021-10-04 01:19:05 字數 1049 閱讀 1923

void

function

(int a,

unsigned

int n){...}

void

function

(int

*p,unsigned

int n){...}

int a[10]

;function

(a,10

);

int a[10]

;sizeof

(a)=

40; sizeof

(a[0])

=4

char s[9]

="cpp-prog"

;// 正確

char s[9]

; s =

"cpp=prog"

// 錯誤

void

function

(int a[

],unsigned

int n,

unsigned

int m)

//錯誤寫法

void

function

(int a[

3],unsigned

int m)

//正確寫法

int n =10;

const

int* p =

&n

int n =10;

int*

const p =

&n

int n =10;

const

int*

const p =

&n

當基類指標指向派生類的時候,若基類析構函式不宣告為虛函式,在析構時,只會呼叫基類而不會呼叫派生類的析構函式,從而導致記憶體洩露。

必須通過基類的指標或者引用去呼叫函式。

基類中必須包含虛函式,且在派生類中必須完成了虛函式的重寫。

C 的易混概念

靜態多型 過載 根據函式的引數個數和型別區分呼叫的函式。早繫結 動態多型 根據所指物件的虛函式表決定呼叫的函式。晚繫結 函式的覆蓋 過載 隱藏 成員函式被過載的特徵 1 相同的範圍 在同乙個類中 2 函式名字相同 3 引數不同 4 virtual 關鍵字可有可無 覆蓋 派生類函式覆蓋基類函式,特徵是...

C語言易混易錯知識彙總(一)

1 實數型常數有單精度和雙精度之分,但無有符號和無符號之分 2 單精度實型常量由常量值後跟f或f表示 3 實型常量隱含按雙精度型處理 4 c語言關鍵字 asm auto break case cdecl char const continue default do double else enum ...

python 易混地帶

每門程式語言都有易混淆的部分,下面列舉出一些python的易混淆知識點。和 is 的區別在python中,操作符測試值的相等性 is 表示式測試物件的一致性,即是否指向同乙個物件。list1 1,a 3 list2 1,a 3 list1 list2,list1 is list2 true,fals...