C++函數透徹理解靈活運用(簡明扼要實用版)

來源:互聯網
上載者:User

標籤:

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++函數透徹理解靈活運用(簡明扼要實用版)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.