在 c++++ 中,函数可通过参数传递和返回值与外部交互。参数传递方式有值传递(传递副本)和引用传递(修改原始参数)。函数可使用 return 关键字返回指定类型的值。例如,计算阶乘的 factorial() 函数通过递归接受整数,并返回其阶乘。
C++ 函数中的参数传递和返回值
在 C++ 中,函数可以通过传递参数和返回值与外部世界进行交互。一个参数是数据的一个值,当函数被调用时,它被传递给函数。函数随后可以使用此参数。返回值是数据的值,它在函数执行完成后被函数返回。
传递参数
立即学习“C++免费学习笔记(深入)”;
有两种基本方法可以向函数传递参数:
- 值传递:在这种方法中,参数的一个副本被传递给函数。函数不能修改原始参数,因为它只有一份副本。
- 引用传递:在这种方法中,对参数的引用被传递给函数。函数可以使用引用来修改原始参数。
以下示例演示了值传递和引用传递之间的区别:
// 值传递
void swap_by_value(int a, int b) {
int temp = a;
a = b;
b = temp;
}
// 引用传递
void swap_by_reference(int& a, int& b) {
int temp = a;
a = b;
b = temp;
}
int main() {
int x = 10, y = 20;
// 值传递
swap_by_value(x, y);
cout << "After swap_by_value: x = " << x << ", y = " << y << endl; // 输出:x = 10, y = 20
// 引用传递
swap_by_reference(x, y);
cout << "After swap_by_reference: x = " << x << ", y = " << y << endl; // 输出:x = 20, y = 10
return 0;
}
返回值
函数还可以使用 return 关键字返回一个值。返回的值的类型必须与函数的声明中指定的返回类型相匹配。
以下示例展示了如何返回一个值:
int sum(int a, int b) {
return a + b;
}
int main() {
int result = sum(10, 20); // 调用 sum() 函数并存储返回值
cout << "The sum is: " << result << endl; // 输出:The sum is: 30
return 0;
}
实战案例
考虑一个计算两个数字阶乘的函数。我们可以设计一个函数 factorial(),该函数接受一个正整数作为参数,并返回该数的阶乘。我们可以使用递归来实现此函数。
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int number = 5;
int result = factorial(number);
cout << "The factorial of " << number << " is: " << result << endl; // 输出:The factorial of 5 is: 120
return 0;
}