C 拾遺之三 C 回顧

2021-09-27 09:45:17 字數 1458 閱讀 4974

1、傳值引數

int

abc(

int a,

int b,

int c)

函式呼叫時,形參型別的複製建構函式將實參複製給形參;

函式結束時,形參型別的析構函式負責釋放形參。

當函式執行結束時,形參的值不會被複製到對應的實參中。

2、引用引數

形參的壞處就是增加程式的執行時間。因為當引數型別資料量很大時(例如matrix),會多次呼叫複製建構函式和析構函式,這個過程非常耗費時間。

使用引用引數,就不存在呼叫複製建構函式和析構函式的過程。

int

abc(

int& a,

int& b,

int& c)

3、常量引用引數

常量引用模式指明引用引數不能被函式修改。

int

abc(

const

int& a,

const

int& b,

const

int& c)

4、返回值

1、值返回

t abc

(t a, t b ,t c)

;

函式呼叫結束時,函式中的臨時變數(傳值引數、區域性變數和所有其他臨時變數)就會被釋放。為了不丟失函式執行的結果,會把這個臨時變數複製到呼叫該函式的環境中去。

2、引用返回

t&

abc(t a, t& z)

常量引用,返回值必須賦值給const常量

const t&

abc(t a, t& z)

4、模板函式

template

t abc

(t a, t b, t c)

5、過載函式

函式簽名(signature)函式的形參型別形參個數確定,與返回值型別沒有關係。

定義多個同名函式的機制稱為函式過載(function overloading)

模板和過載的區別:模板只與引數型別有關,過載與引數型別引數個數有關。

C語言拾遺

main函式引數 c語言規定main函式引數只能有兩個,習慣上這兩個引數寫成argc和argv。c語言還規定argc必須是整形變數,argv必須是指向字串的指標陣列。因此,main函式的函式頭應該寫為 main argc,argv int argc char argv 或者 main int arg...

C 點滴拾遺

1.成員變數的初始化順序,與建構函式中初始化列表的順序無關,與成員變數申明的順序一致 多繼承中,基類的構造順序,與派生類的建構函式初始化列表中基類的構造順序無關,與定義派生類時基類的申明順序有關 2.友元關係不能繼承。3.指標和typedef typedef int pint int i 1 con...

C 拾遺 目錄

c 語言標準更新很慢,截止到本文為止,最新的是c 11和c 14標準。c 是一門很有魅力,但也的確很難的程式語言,能夠稱得上精通它的人的確不多。本序列不致力於寫成c 的百科全書,而是基於最新標準對一些語言上的難點和易於被大多數人忽略的語言點,進行 故名拾遺。基礎 name cast 顯式型別轉換 引...