c++函式學習總結
c++函式學習總結
函式的定義:函式的定義形式為資料型別+函式名+帶資料型別的形式參數列+函式體
例如:
int max(int x,int y)
{
return x>y? x:y;
}
函式的形式有無參函式、有參函式和空函式三種。
函式的宣告:函式在呼叫前需要先進行宣告,說明型別為void的函式是無參函式,無參函式沒有引數傳遞所以沒有返回值,int double等說明的為有參函式,空函式沒有任何語句不完成什麼工作,只是佔據一個位置用於擴充函式功能。
void swap(int p1,int p2);
函式呼叫時的引數傳遞方式有三種:
按值傳遞:將實參的值賦給形參,因為被呼叫函式不對實參進行操作所以形參的變化不對實參造成影響,即使形參的值在函式中發生了變化實參的值也仍為呼叫前的值。
定義:Voidswap(int a,int b); 引用: swap(a,b)
地址傳遞:定義時需要將形參說明成指標,在呼叫時需要指定地址值形式的實參,也就是說呼叫時在括號中需要輸入實參的地址(加&)。形參的任何變化都會影響到實參。
定義:Void swap(int *p1,int *p2); 引用 :swap(&a,&b)
引用傳遞:引用傳遞相當於是給實參起了一個別名,對其進行操作就相當於對實參直接進行操作。在函式定義時需要在形參前面加上&,對形參的任何操作都能改變相應的資料,這種傳遞方式是三種引數傳遞方式中最為方便的一種。
定義:Void swap(int &a,int &b); 引用:swap(a,b)
函式的返回值:返回語句為return,它的一般形式為 return(表示式),當只有return;時那麼這個函式沒有返回值,只是把流程轉向主函式。
在說明語句中:*變數 表示是指標, &變數 表示是說明引用。在正常語句中: 變數前加&表示取地址,指標前加*表示取內容。
s*=*(p+i) 賦值號左邊的*表示是乘右邊的*表示為取地址。*(a+i)=a【i】
定義陣列a :int a【100】,當直接輸a時表示的是地址*(a+i)=a[i]。int *p int &x=y p=&x y=*p
感悟:經過一段時間的學習,我感覺函式最大的優點就是比較靈活,可以把一個問題分解成很多個小部分來處理。可以自己定義一些函式來實現特定的功能,並且可以反覆多次呼叫函式來簡化過程,通過函式的使用可以使可以使主函式變得更加簡潔,讓人更加容易讀懂,而且當構建出現錯誤時可以檢查各函式的值更方便找出錯誤。
:
相關文章
- C++虛擬函式學習總結C++函式
- PHP 學習總結之函式PHP函式
- Python---python函式學習總結Python函式
- tensorflow相關函式學習總結函式
- c++學習總結C++
- C++函式修飾符總結C++函式
- C++ 序列操作函式最全總結C++函式
- python學習總結之 函式定義defPython函式
- 前端學習之PHP基礎函式總結前端PHP函式
- C++ sort排序函式的用法總結C++排序函式
- python中list方法與函式的學習總結Python函式
- C++學習筆記(二)——函式C++筆記函式
- c++ 的學習 建構函式1C++函式
- 【機器學習基礎】常見損失函式總結機器學習函式
- MySQL數學函式簡明總結MySql函式
- Sigmoid函式總結Sigmoid函式
- C++學習隨筆——C++仿函式的應用方法C++函式
- C++學習筆記-----類和建構函式C++筆記函式
- mysql日期函式總結MySql函式
- PHP常用函式總結PHP函式
- 《C++ Primer》學習筆記(六):C++模組設計——函式C++筆記函式
- 函式學習函式
- 深入分散式快取 — 學習總結分散式快取
- C++學習筆記-C++對C語言的函式擴充C++筆記C語言函式
- spark RDD的學習,filter函式的學習,split函式的學習SparkFilter函式
- MySQL函式學習(一)-----字串函式MySql函式字串
- Python函式引數總結Python函式
- 總結常用的字串函式字串函式
- mysql函式全面總結KSVMMySql函式
- C++物件導向總結——虛指標與虛擬函式表C++物件指標函式
- 函式學習五函式
- 函式學習二函式
- 函式學習四函式
- 函式學習六函式
- 函式學習三函式
- 函式的學習函式
- 學習Rust 函式Rust函式
- 小甲魚python學習總結之函式——lambda fillter() map() 閉包 遞迴Python函式遞迴