C++ 函数参数
Parameters 与 Arguments
信息可以作为 Parameters 参数传递给方法。Parameters 在方法中充当变量。
参数在函数名后面的括号内指定。可以添加任意数量的参数,只需用逗号分隔即可:
语法
void functionName(parameter1, parameter2, parameter3) {// code to be executed}
以下函数以一个名为的 fname 的 字符串 作为参数。调用函数时,我们传递一个名称,该名称在函数内部用于打印 "Hello" 和每个人的姓名:
实例
#include <iostream>#include <string>using namespace std;void myFunction(string fname) {cout << fname << " Refsnes\n";}int main() {myFunction("Liam");myFunction("Jenny");myFunction("Anja");return 0;}
当一个参数被传递给函数时,它被称为 argument 参数。从上面的例子来看:name 是一个 parameter 参数,而Liam、Jenny 和 Anja 都是 arguments 参数。
默认参数
也可以使用默认参数值,方法是使用等号 (=)。
如果我们在没有参数的情况下调用函数,它将使用默认值("Norway")
#include <iostream>#include <string>using namespace std;void myFunction(string country = "Norway") {cout << country << "\n";}int main() {myFunction("Sweden");myFunction("India");myFunction();myFunction("USA");return 0;}
带有默认值的参数通常被称为 "可选参数”。从上面的示例中,country 是可选参数,它使用默认值 ("Norway")。
多个参数
在函数内部,可以添加任意多个数量的参数:
#include <iostream>#include <string>using namespace std;void myFunction(string fname, int age) {cout << fname << " Refsnes. " << age << " years old. \n";}int main() {myFunction("Liam", 3);myFunction("Jenny", 14);myFunction("Anja", 30);return 0;}
请注
意,当您使用多个参数时,函数调用的参数数量必须与参数数量相同,并且参数的传递顺序必须相同。返回值
前面实例中使用的 void 关键字表示函数不应返回值。如果希望函数返回值,可以使用数据类型(如 int、string 等)而不是 void,并在函数内部使用 return 关键字:
#include <iostream>using namespace std;int myFunction(int x) {return 5 + x;}int main() {cout << myFunction(3);return 0;}
本例返回带有 两个参数 的函数之和:
#include <iostream>using namespace std;int myFunction(int x, int y) {return x + y;}int main() {cout << myFunction(5, 3);return 0;}
还可以将结果存储在变量中:
#include <iostream>using namespace std;int myFunction(int x, int y) {return x + y;}int main() {int z = myFunction(5, 3);cout << z;return 0;}
传递引用
在上面的实例中,我们在向函数传递参数时使用了普通变量。还可以传递对函数的 引用。当需要更改 arguments 参数的值时,这就很有用了:
#include <iostream>using namespace std;void swapNums(int &x, int &y) {int z = x;x = y;y = z;}int main() {int firstNum = 10;int secondNum = 20;cout << "Before swap: " << "\n";cout << firstNum << secondNum << "\n";swapNums(firstNum, secondNum);cout << "After swap: " << "\n";cout << firstNum << secondNum << "\n";return 0;}
传递数组
您还可以将 数组 作为参数传递给函数:
#include <iostream>using namespace std;void myFunction(int myNumbers[5]) {for (int i = 0; i < 5; i++) {cout << myNumbers[i] << "\n";}}int main() {int myNumbers[5] = {10, 20, 30, 40, 50};myFunction(myNumbers);return 0;}
实例解释
函数 (myFunction) 将数组作为其参数 (int myNumbers[5]),并使用 for 循环遍历数组元素。
在 main() 内部调用函数时,我们传递 myNumbers 数组,该数组输出数组元素。
注意,调用该函数时,在将其作为参数
myFunction(myNumbers) 传递时,只需使用数组的名称。但是,函数参数 (int myNumbers[5]) 中需要完整声明数组。