C 函式學習筆記

2022-03-14 12:22:36 字數 1513 閱讀 7238

c++繼承了c語言的全部語法,也包括函式的定義和使用方法。

呼叫其他函式的函式因為位高權重被尊稱為主調函式,被其他函式呼叫的函式稱為被調函式。

函式的返回值由return語句給出,return 表示式;

乙個函式也可以不將任何值返回給主調函式,這時它的型別識別符號為void,可以不寫return語句,但也可以寫乙個不帶表示式的return語句(return;)

函式的呼叫:一般在定義了乙個函式之後就可以直接呼叫這個函式,但如果希望在定義乙個函式前呼叫它,則需要在呼叫函式之前新增該函式的函式原型宣告,不多說了看**

#includeusing

namespace

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中有如下定義...