C++ 函数参数
函数参数是C++编程中的重要概念,它允许我们向函数传递数据,使函数能够处理不同的输入并产生相应的输出。掌握函数参数的使用是成为熟练的C++程序员的关键一步。
什么是函数参数?
函数参数是在调用函数时传递给函数的值。这些值被函数用来执行其预定的操作。函数参数在函数定义的括号内声明,并在函数调用时提供实际值。
// 函数定义
int add(int a, int b) { // a和b是形式参数
return a + b;
}
// 函数调用
int result = add(5, 3); // 5和3是实际参数
在上面的例子中:
a
和b
是形式参数(或形参)5
和3
是实际参数(或实参)
形式参数与实际参数
形式参数(形参)
形参是在函数定义时声明的变量。它们在函数主体内作为局部变量,并在函数执行期间接收调用者提供的值。
实际参数(实参)
实参是调用函数时传递给函数的实际值。这些值被复制到相应的形参中。
#include <iostream>
using namespace std;
void displaySum(int x, int y) { // x和y是形参
cout << "Sum: " << x + y << endl;
}
int main() {
int a = 10, b = 20;
displaySum(a, b); // a和b是实参
return 0;
}
输出:
Sum: 30
参数传递方式
C++中有三种主要的参数传递方式:
1. 值传递(Pass by Value)
在值传递中,函数接收实参的副本。对形参的任何修改都不会影响原始变量。
#include <iostream>
using namespace std;
void modifyValue(int x) {
x = 100; // 修改的只是副本
cout << "Inside function: " << x << endl;
}
int main() {
int num = 10;
cout << "Before function: " << num << endl;
modifyValue(num);
cout << "After function: " << num << endl; // 原值不变
return 0;
}
输出:
Before function: 10
Inside function: 100
After function: 10
2. 引用传递(Pass by Reference)
在引用传递中,函数接收对原始变量的引用。这意味着对形参的任何修改都会影响原始变量。
#include <iostream>
using namespace std;
void modifyValue(int& x) {
x = 100; // 修改的是原始变量
cout << "Inside function: " << x << endl;
}
int main() {
int num = 10;
cout << "Before function: " << num << endl;
modifyValue(num);
cout << "After function: " << num << endl; // 原值被修改
return 0;
}
输出:
Before function: 10
Inside function: 100
After function: 100
提示
引用传递通常用于:
- 当你需要函数修改传入的变量时
- 当传递大对象以避免复制开销时