C Primer知識系列三 函式基礎

2021-08-10 19:12:59 字數 1253 閱讀 5902

格式:函式返回值型別 函式名(引數列表)

//1. 陣列引數,傳遞的是位址  

int func1(int arr,int n)

int func2(int* arr,int n)

int func3(const

int arr,int n)//const原始陣列不被修改

//二維陣列

int func4(int* arr[4],int m)

int func5(int arr[4],int m)

//2. c-風格字串引數

int func6(const

char* s或const

char s)

char* func7(char ch,int n)//返回c-風格字串

char* res = func7('c',5);

delete res;

//3. 結構引數

//可以按值傳遞

struct structexam;

void func8(structexam t1)

void func8(const structexam* t1)

func8(&t);

宣告函式指標:返回型別 (*函式指標名) (引數列表);

使用指標呼叫函式: (*函式指標名)(…);

指向函式指標的指標:

typedef int (*p_fun)(...);

int f1(...);

p_fun p1 = f1;//f1是函式指標,p1是指向函式指標的指標

在函式宣告和定義前加關鍵字inline,內聯函式用內聯**代替函式呼叫,執行速度快但占用記憶體多,但不能遞迴且編譯器不一定會滿足內聯函式要求。

引用是變數別名,用作函式形參,函式可使用原始資料。

型別& 引用名=變數名;必須在宣告時初始化。

注意:應避免返回函式終止時不再存在的記憶體單元的引用。

名稱相同但函式特徵標(引數列表)不同的函式。

型別自身與其引用視為相同的特徵標。

//多種型別使用同一函式,但並非所有引數必須為模板型別

template t>

void func(t a,t b)

//顯示具體化,優先順序:非模板函式》具體化》常規模板

template<> 常規函式......

//顯示例項化

template void func2(...)

C Primer 學習筆記 函式(三)

返回陣列指標 type function parameter list dimension int func int i 10 func int i 是乙個帶引數i的函式func func int i 對函式的呼叫結果進行解引用,即呼叫結果是乙個指標 int func int i 10 此指標指向1...

C Primer讀書筆記梳理系列(三)

在我看來這部分的內容,比較底層,也是比較難的,但是非常重要,面試過程中也經常遇到 拷貝控制操作 特殊的成員函式 控制類的行為 拷貝和移動建構函式 用同型別的另乙個物件初始化本物件時做什麼 class a b 拷貝和移動賦值運算子 將乙個物件賦予同型別的另乙個物件時做什麼 class a b 析構函式...

C Primer知識系列五 物件和類

物件導向程式設計特性 抽象 封裝和資料隱藏 多型 繼承 的可重用性。class stock public 表示組成的公共介面的類成員 抽象 void acquire const char co void buy int num 封裝 將抽象與實現分開 void stock acquire const...