C Primer 讀書筆記 函式

2021-08-07 05:54:07 字數 1889 閱讀 8026

void

fun(initializer_listil)//initializer_list定義在同名的標頭檔案中

fun();

initializer_list物件的元素永遠是常量值。

string read();

void print(const

string &);

void print(double);//過載print函式

void foobar(int ival)

函式中實參是形參的初始值,第乙個實參對應第乙個形參。但是編譯器能以任意可行的順序對實參求值(實參可以是函式或者表示式)

形參名是可以省略的,未命名的形參無法使用。

函式的返回型別不能是陣列型別或者函式型別。

區域性靜態物件的生命週期貫穿函式呼叫及之後的時間(函式呼叫結束後不銷毀,程式終止時被銷毀)(靜態把物件的生命週期提公升了乙個級別?)——p185

當使用陣列作為形參,要防止陣列使用的越界。

陣列引用形參一定要加括號

void fun(int (&arr)[10]); //正確:arr是具有10個整數的整形陣列的引用。

void fun(int &arr[10]); //錯誤:將arr宣告成引用的陣列。

函式不能反回區域性物件的引用或指標。

返回引用的函式得到的是左值其他型別得到的是右值。

在給定作用域中乙個形參只能被賦予一次預設實參。

呼叫過載函式時應該盡量避免強制型別轉換。如果在實際應用中確實需要強制轉換型別轉換,則說明我們設計的形參集合不合理。

函式指標的型別必須與過載函式中的某乙個精確匹配。

通過使用引用避免拷貝(拷貝大的類型別物件或者容器物件是比較低效的),如果不需要改變形參的值,只需要將其宣告為常量引用。

void fun(const

int &i)

c++可以使用尾置返回型別

//func返回乙個指標,該指標指向含有10個整數的陣列

auto

func(int i)->int(*)

[10];

如果形參是某種型別的指標或引用,通過區分其指向的是常量物件還是非常量物件可以實現函式過載。——p208

函式不能定義函式型別的形參,但是可以定義指向函式的指標,同理可以定義返回指向函式的指標。

將auto和decltype用於函式指標型別

int func1(const

int&);

int func2(const

int&);

//根據形參的取值,getfun函式返回指向func1或者func2的指標。

decltype(func1) *getfun(const

string&);

《C Primer》讀書筆記 函式

函式定義 函式組成 由函式名 一組運算元 形參,parameter 在一對圓括號中宣告,形參之間由逗號分隔 函式執行的運算 函式體,function body 塊組成和乙個返回型別組成 return type 函式呼叫 使用呼叫操作符進行呼叫 一對圓括號 形參型別必須與實參相同或者實參可被轉換為形參...

C primer 讀書筆記

第2 章 變數和基本型別 1 變數直接初始化和變數 複製初始化 int ival 1024 direct initialization int ival 1024 copy initialization 初始化不是賦值 2 內建型別復 制初始化和直接初始化幾乎沒有區別 但 對類型別物件來 說,有些初...

C Primer讀書筆記

前些日子開始看 c primer 順便做一些筆記,既有書上的,也有自己理解的。因為剛學c 不久,筆下難免有謬誤之處,行文更是凌亂 所幸不是用來顯配的東西,發在linuxsir只是為了方便自己閱讀記憶,以防只顧上網忘了正事。書看了不到一半,所以大約才寫了一半,慢慢補充。const要注意的問題 1 下面...