目錄
函數作用
將經常使用的代碼封裝起來,減少重複代碼
函數定義
C++ 中的函數定義的一般形式如下:
return_type function_name( parameter list )
{
body of the function
}
在 C++ 中,函數由一個函數頭和一個函數主體組成。下面列出一個函數的所有組成部分:
- 返回類型:一個函數可以返回一個值。return_type 是函數返回的值的數據類型。有些函數執行所需的操作而不返回值,在這種情況下,return_type 是關鍵字 void。
- 函數名稱:這是函數的實際名稱。函數名和參數列表一起構成了函數簽名。
- 參數:參數就像是佔位符。當函數被調用時,您向參數傳遞一個值,這個值被稱爲實際參數。參數列表包括函數參數的類型、順序、數量。參數是可選的,也就是說,函數可能不包含參數。
- 函數主體:函數主體包含一組定義函數執行任務的語句。
//求兩數之和的函數
int sum(int a, int b) {
return a + b;
}
函數聲明
函數聲明會告訴編譯器函數名稱及如何調用函數。函數的實際主體可以單獨定義。函數的聲明可以有多個但是聲明只有一個,針對上面定義的函數 sum(),以下是函數聲明:int sum(int num1, int num2);
在函數聲明中,參數的名稱並不重要,只有參數的類型是必需的,因此下面也是有效的聲明:int sum(int, int);
函數調用
#include <iostream>
using namespace std;
//函數聲明
int sum(int m1,int m2);
int main() {
int ret = sum(1, 2);
cout << ret;
}
//求兩數之和的函數
int sum(int a, int b) {
return a + b;
}
函數值傳遞
#include <iostream>
using namespace std;
//函數聲明
void swap(int m1,int m2);
int main() {
int a = 1;
int b = 2;
//當做函數的值傳遞時候,函數的形參發生變化不會影響實參
swap(a, b);
cout << a;//1
cout << b;//2
}
//交換
void swap(int a, int b) {
int temp = b;
b = a;
a = temp;
cout << a;//2
cout << b;//1
}
函數常見的樣式
無參無返
無參有返
有參無返
有參有返
函數的分文件書寫
爲了代碼簡介複用,有時將函數份文件書寫,項目結構
第一步創建後綴名是.h的頭文件並聲明函數
#include <iostream>
using namespace std;
//函數聲明
void swap(int m1, int m2);
第二步創建後綴名是.cpp的源文件,並定義函數
#include <iostream>
#include "sum.h"//要引用頭文件
using namespace std;
//交換
void swap(int a, int b) {
int temp = b;
b = a;
a = temp;
cout << a;//2
cout << b;//1
}
第三步使用
#include <iostream>
#include "sum.h"//應用swap函數所在的頭文件
using namespace std;
//函數聲明
void swap(int m1,int m2);
int main() {
int a = 1;
int b = 2;
swap(a, b);
cout << a;//1
cout << b;//2
}