C++ 中 函数 的参数,为形式参数,即如果我们通过传值的方式,传递的参数其实是实际参数的一份拷贝,而不是真正的实际参数。
在 C++ 中,函数的形参可以没有,也可以有任意多个,同时,在 C++ 中,如果我们省略函数参数那么表示可以传入任意的函数参数,因此,如果我们不想要函数参数,最好使用 void。
type funcName(paramType1 param1, paramType2 param2)
{
// 执行语句...
return val
}
参数 | 描述 |
---|---|
type | 函数的返回值类型,如果没有任何返回值,则写 void,不可以死省略不写。 |
funcName | 函数名。 |
paramType1 | 函数参数 param1 的类型 |
param1 | 函数参数 |
return | 可选,函数返回值使用的关键字。 |
val | 函数需要具体返回的值。 |
我们定义了一个函数 funcName,该返回的返回值类型是 type,如果没有返回值,则写 void。
该函数有两个参数,分别为 paramType1 类型的参数 param1 和 paramType2 类型的参数 param2,函数的返回值为 val。
用函数,实现寻找两个数的最大公约数
#include <iostream>
using namespace std;
int gcdNormal(int x, int y)
{
int n = 0;
if (x > y)
{
n = y;
}
else
{
n = x;
}
for(int i = n; i >= 1; i--)
{
if (x % i == 0 && y % i == 0)
{
return i;
}
}
return 1;
}
int main(int argc, char **argv)
{
cout << "嗨客网(www.haicoder.net)\n" << endl;
int gcd = gcdNormal(10, 20);
cout << "Gcd = " << gcd << endl;
return 0;
}
程序运行后,控制台输出如下:
我们定义了一个函数 gcdNormal,传入两个 int 类型 的参数 a 和 b,函数 返回 一个 int 类型的 变量。该函数使用了穷举法实现了求参数 a 和 参数 b 的最大公约数的逻辑。
C++ 的函数参数是函数参数,对函数参数的修改不会影响实参
#include <iostream>
using namespace std;
void change(int x)
{
x += 100;
}
int main(int argc, char **argv)
{
cout << "嗨客网(www.haicoder.net)\n" << endl;
int x = 10;
change(x);
cout << "X = " << x << endl;
return 0;
}
程序运行后,控制台输出如下:
我们定义了一个函数 change(),传入一个 int 类型的参数 a,在函数体中,对该函数的参数实现加 100 的操作。
最后,调用该函数,并传入变量 a,执行完 change() 函数之后,我们再次打印变量 a 的值,发现 a 的值还是 10,并不是加 100 之后的 110。
因为在 C++ 中,函数的参数是形式参数,即是实参的拷贝,所以修改的不是实参,所以 a 的值不会改变。
C++ 中函数的参数,为形式参数,即如果我们通过传值的方式,传递的参数其实是实际参数的一份拷贝,而不是真正的实际参数。
在 C++ 中,函数的形参可以没有,也可以有任意多个,同时,在 C++ 中,如果我们省略函数参数那么表示可以传入任意的函数参数,因此,如果我们不想要函数参数,最好使用 void。