c++繼承了c語言的全部語法,也包括函式的定義和使用方法。
呼叫其他函式的函式因為位高權重被尊稱為主調函式,被其他函式呼叫的函式稱為被調函式。
函式的返回值由return語句給出,return 表示式;
乙個函式也可以不將任何值返回給主調函式,這時它的型別識別符號為void,可以不寫return語句,但也可以寫乙個不帶表示式的return語句(return;)
函式的呼叫:一般在定義了乙個函式之後就可以直接呼叫這個函式,但如果希望在定義乙個函式前呼叫它,則需要在呼叫函式之前新增該函式的函式原型宣告,不多說了看**
#includeusingnamespace
std;
double power(double x,int
n)int
main()
巢狀呼叫
函式允許巢狀呼叫,如果函式1呼叫了函式2,函式2再呼叫函式3,便形成了函式的巢狀呼叫
//這是求平方和程式的一部分
int fun2(int
m)int fun1(int
x,inty)
遞迴呼叫
函式可以直接或間接的呼叫自身,稱為遞迴呼叫
//直接呼叫
void
fun1()
//間接呼叫
void
fun1()
void
fun2()
函式的引數傳遞
值傳遞:函式呼叫時傳遞的是實參的值,是單向的傳遞過程。形參值的改變對實參不起作用。
引用傳遞:引用是一種特殊型別的變數,可以被認為是令乙個變數的別名。用引用作形參,在函式呼叫時發生的引數傳遞,稱為引用傳遞。
//值傳遞void
swap(inta,intb){}
//引用傳遞
void swap(int &a,int &b){}
內聯函式:內聯函式不是在呼叫時發生控制轉移,而是在編譯時將函式體嵌入在每乙個呼叫處。直白一點一點表達的話就是用空間換時間,好吧,了解微機原理的孩子秒懂~
定義與普通函式的定義方式幾乎一樣,只需要使用關鍵字inline
inline 型別說明符 函式名(含型別說明的形參表)
帶預設形參值的函式
函式在定義時可以預先宣告預設的形參值,說幾點要注意的吧1有預設值的形參必須在形參列表的最後;2在相同的作用域內,不允許在同乙個函式的多個宣告中對同乙個引數的預設值重複定義,即使值不同也不行,就像我們不能同時左手畫方右手畫圓一樣。
函式過載
兩個以上的函式,具有相同的函式名,但是形參的個數或者型別不同,編譯器根據實參和形參的型別及個數的最佳匹配,自動確定呼叫哪乙個函式,這就是函式的過載,過載函式的形參必須不同:個數不同或者型別不同
執行棧和函式呼叫的執行
棧是一種容納資料的容器其特點是~後進先出先進後出
函式先討論到這裡,欲知類與物件如何,且聽下回分解~
C 函式學習筆記
system.diagnostics.debug.writeline 資訊 輸出 system.diagnostics.debug.assert false,資訊 斷言 一 一維 int numbers new int 不定長 int numbers new int 3 定長 二 多維 int nu...
C 函式學習筆記
函式引數引用傳遞,可以實現雙向傳遞 include using namespace std void swap int a,int b intmain 內聯函式 節省了引數傳遞,控制轉移開銷,內聯函式體內不能有迴圈語句和switch,內聯函式定義必須在第一次呼叫之前,對內聯函式不能進行異常介面說明 ...
隨機函式學習筆記
在c語言中 來自rand 函式產生乙個隨機數 0到 0x7fff 之間 原型為int rand void srand 函式和 rand函式配合使用,產生隨機數的起始發生資料原型為 void srand unsigned seed 兩者對應的標頭檔案均為 stdlib.h stdlib.h中有如下定義...