函式定義
函式組成:由函式名、一組運算元(形參,parameter)在一對圓括號中宣告,形參之間由逗號分隔、函式執行的運算(函式體,function body)塊組成和乙個返回型別組成(return type)
函式呼叫:使用呼叫操作符進行呼叫(一對圓括號),形參型別必須與實參相同或者實參可被轉換為形參型別
呼叫操作符的運算元為函式名和一組實參。呼叫操作符的結果型別為函式的返回值型別,值為函式返回值
函式呼叫執行的操作:用實參初始化形參的值,將控制權交給被調函式,主調函式被掛起
函式體作用域:函式體類作用域為區域性作用域(local variable)
形參和實參:形參為函式定義的乙個區域性儲存空間,由實參初始化。形參為乙個表示式。
函式的返回值:函式必須指定返回值型別
函式形參:函式形參在宣告時可以省略名字,定義時不能省略
引數傳遞
每次呼叫函式時都會重新用實參初始化其形參的值
形參為非引用型別,則複製實參的值;形參為引用型別(&),則形參只是為實參的別名
指標形參:複製實參指標;非 const 指標形參,可以修改指標指向的值,若需保護保護該值,需將形參定義為指向 const 物件的指標
可以將形參指向 const 物件的指標初始化為指向非 const 物件,當不能將形參指向非 const 物件的指標初始化為指向 const 物件
const 形參
非 const,非引用:可傳 const,也可傳非 const
const,非引用:可傳 const 和非 const,但不能改變該形參的值
void fun(const
int i){} //不能寫 i
void fun(int i){}//錯誤:重複定義
非 const,引用
引用形參直接關聯實參的值,而非複製副本,形參直接修改實參的值
使用該引用繫結的物件初始化該引用
int i = 0, j = 1;
void swap(int &a, int &b){}
swap(i, j);
const, 引用:避免複製,降低開銷;不能修改形參的值
C Primer 讀書筆記 函式
void fun initializer listil initializer list定義在同名的標頭檔案中 fun initializer list物件的元素永遠是常量值。string read void print const string void print double 過載print函...
C primer 讀書筆記
第2 章 變數和基本型別 1 變數直接初始化和變數 複製初始化 int ival 1024 direct initialization int ival 1024 copy initialization 初始化不是賦值 2 內建型別復 制初始化和直接初始化幾乎沒有區別 但 對類型別物件來 說,有些初...
C Primer讀書筆記
前些日子開始看 c primer 順便做一些筆記,既有書上的,也有自己理解的。因為剛學c 不久,筆下難免有謬誤之處,行文更是凌亂 所幸不是用來顯配的東西,發在linuxsir只是為了方便自己閱讀記憶,以防只顧上網忘了正事。書看了不到一半,所以大約才寫了一半,慢慢補充。const要注意的問題 1 下面...