標籤:
C++繼承了C語言的全部文法,也包括函數的定義和使用方法。
調用其他函數的函數因為位高權重被尊稱為主調函數,被其他函數調用的函數稱為被調函數。
函數的傳回值由return語句給出,return 運算式;
一個函數也可以不將任何值返回給主調函數,這時它的類型標識符為void,可以不寫return語句,但也可以寫一個不帶運算式的return語句(return;)
函數的調用:一般在定義了一個函數之後就可以直接調用這個函數,但如果希望在定義一個函數前調用它,則需要在調用函數之前添加該函數的函數原型聲明,不多說了看代碼
#include<iostream>using namespace std;double power(double x,int n){double val=1.0;while(n--) val*=x;return val;}int main(){cout<<"5 to the power 2 is"<<power(5,2)<<endl;//函數調用作為一個運算式出現在輸出語句中return 0;}
嵌套調用
函數允許嵌套調用,如果函數1調用了函數2,函數2再調用函數3,便形成了函數的嵌套調用
//這是求平方和程式的一部分int fun2(int m){return m*m;}int fun1(int x,inty){return fun2(x)+fun2(y);}
遞迴調用
函數可以直接或間接的調用自身,稱為遞迴調用
//直接調用void fun1(){...fun1();...}//間接調用void fun1(){...fun2();...}void fun2(){...fun1();...}
函數的參數傳遞
值傳遞:函數調用時傳遞的是實參的值,是單向的傳遞過程。形參值的改變對實參不起作用。
引用傳遞:引用是一種特殊類型的變數,可以被認為是令一個變數的別名。用引用作形參,在函數調用時發生的參數傳遞,稱為引用傳遞。
//值傳遞void swap(inta,intb){}//引用傳遞void swap(int &a,int &b){}
內嵌函式:內嵌函式不是在調用時發生控制轉移,而是在編譯時間將函數體嵌入在每一個調用處。直白一點一點表達的話就是用空間換時間,好吧,瞭解微機原理的孩子秒懂~
定義與普通函數的定義方式幾乎一樣,只需要使用關鍵字inline
inline 類型說明符 函數名(含類型說明的形參表){語句序列}
帶預設形參值的函數
函數在定義時可以預先聲明預設的形參值,說幾點要注意的吧1有預設值的形參必須在形參列表的最後;2在相同的範圍內,不允許在同一個函數的多個聲明中對同一個參數的預設值重複定義,即使值不同也不行,就像我們不能同時左手畫方右手畫圓一樣。
函數重載
兩個以上的函數,具有相同的函數名,但是形參的個數或者類型不同,編譯器根據實參和形參的類型及個數的首選,自動確定調用哪一個函數,這就是函數的重載,重載函數的形參必須不同:個數不同或者類型不同
運行棧和函數調用的執行
棧是一種容納資料的容器其特點是~後進先出先進後出
函數先討論到這裡,欲知類與對象如何,且聽下回分解~
?
C++函數透徹理解靈活運用(簡明扼要實用版)