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]
) 中需要完整声明数组。