在 C++ 中,自定義函數就像我們自己設計的 “工具”,需要先 “造工具”(定義函數),再 “用工具”(調用函數)。下面用通俗的方式講清楚調用方法和規則:
一、先搞懂 “函數三要素”
每個自定義函數都有三個關鍵部分,就像工具的 “説明書”:
返回值類型:工具做完事後給你的 “結果類型”(比如算加法後返回一個數字,就用int;如果只是打印文字不需要結果,就用void)。
函數名:工具的名字(比如add、printHello,自己起,見名知意)。
參數列表:使用工具時需要給的 “原材料”(比如算加法需要兩個數字,參數就是int a, int b)。
二、調用函數的步驟(舉例説明)
假設我們要做一個 “加法工具”,步驟如下:
1. 先 “聲明” 函數(告訴編譯器有這個工具)
就像先告訴別人 “我有一個加法工具,能算兩個數的和”。聲明格式:返回值類型 函數名(參數列表);例子:
cpp
運行
int add(int a, int b); // 聲明:有個叫add的工具,接收兩個int,返回int
2. 再 “定義” 函數(具體實現工具的功能)
就是寫出工具的 “用法”,告訴它怎麼幹活。定義格式:返回值類型 函數名(參數列表) { 函數體(具體操作) }例子:
cpp
運行
int add(int a, int b) {
return a + b; // 具體功能:把a和b加起來,返回結果
}
3. 最後 “調用” 函數(使用工具)
需要的時候直接喊工具名,給它原材料,就能得到結果。調用格式:函數名(實際參數);例子(在main函數裏用):
cpp
運行
include <iostream>
using namespace std;
// 1. 聲明函數
int add(int a, int b);
int main() {
int x = 3, y = 5;
// 3. 調用函數:把x和y傳給add,得到結果存到sum裏
int sum = add(x, y);
cout << "和是:" << sum << endl; // 輸出:和是:8
return 0;
}
// 2. 定義函數
int add(int a, int b) {
return a + b;
}
4、調用的核心規則(必須遵守!)
“先聲明 / 定義,後調用”編譯器從上到下讀代碼,必須讓它先知道函數存在,才能調用。錯誤例子:在main裏直接調用add,但add的聲明 / 定義在main後面,編譯器會報錯 “找不到 add”。
參數必須 “匹配”調用時給的 “實際參數”(比如x, y)和函數定義時的 “形式參數”(a, b)必須:
數量相同:比如函數要 2 個參數,調用時不能只給 1 個。
類型兼容:比如函數要int,不能傳字符串("abc")。
返回值可以用也可以不用
如果函數返回值類型不是void(比如int add(...)),可以用變量接收結果(sum = add(...)),也可以直接用(cout << add(...))。
如果是void(比如void print(...)),不能寫int a = print(...),因為它沒有返回值。
函數內部的變量 “局部有效”函數裏定義的變量(比如add裏的a和b),只在函數內部能用,外面訪問不到(類似 “工具內部的零件,外面拿不到”)。
四、簡單總結
自定義函數 = 聲明(告訴有這個工具) + 定義(寫工具用法) + 調用(用工具幹活)。
調用時注意:參數數量 / 類型要對,先讓編譯器知道函數存在。
就像用洗衣機:先知道有洗衣機(聲明),知道怎麼用(定義:放衣服、按開關),然後實際去用(調用:放衣服進去洗),最後得到乾淨衣服(返回值)。