C++函数参数

C++函数参数教程

C++函数 的参数,为形式参数,即如果我们通过传值的方式,传递的参数其实是实际参数的一份拷贝,而不是真正的实际参数。

在 C++ 中,函数的形参可以没有,也可以有任意多个,同时,在 C++ 中,如果我们省略函数参数那么表示可以传入任意的函数参数,因此,如果我们不想要函数参数,最好使用 void

C++函数参数详解

语法

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; }

程序运行后,控制台输出如下:

04_C函数参数.png

我们定义了一个函数 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; }

程序运行后,控制台输出如下:

05_C函数参数.png

我们定义了一个函数 change(),传入一个 int 类型的参数 a,在函数体中,对该函数的参数实现加 100 的操作。

最后,调用该函数,并传入变量 a,执行完 change() 函数之后,我们再次打印变量 a 的值,发现 a 的值还是 10,并不是加 100 之后的 110。

因为在 C++ 中,函数的参数是形式参数,即是实参的拷贝,所以修改的不是实参,所以 a 的值不会改变。

C++函数参数总结

C++ 中函数的参数,为形式参数,即如果我们通过传值的方式,传递的参数其实是实际参数的一份拷贝,而不是真正的实际参数。

在 C++ 中,函数的形参可以没有,也可以有任意多个,同时,在 C++ 中,如果我们省略函数参数那么表示可以传入任意的函数参数,因此,如果我们不想要函数参数,最好使用 void。