C++ 中的函数
函数用于为程序提供模块化。使用函数创建应用程序使理解、编辑、检查错误等变得更加容易。
在 C++ 中使用函数的基本语法
下面是如何在 C++ 中定义一个函数,
return-type function-name(parameter1, parameter2, ...)
{
// function-body
}
- 返回类型:表示函数将返回什么。它可以是 int,char,一些指针甚至是一个类对象。可以有不返回任何东西的函数,它们用 void 来表示。
- 函数名:是函数的名称,使用它被调用的函数名。
参数:是保存调用函数时传递的参数值的变量。函数可能包含参数列表,也可能不包含参数列表。
// function for adding two values void sum(int x, int y) { int z; z = x + y; cout << z; } int main() { int a = 10; int b = 20; // calling the function with name 'sum' sum (a, b); }
这里,
a
和b
是两个变量,作为参数发送到函数sum
,而x
和y
是参数,将保存a
和b
的值,以执行函数内部所需的操作。- 函数体:是编写代码语句的部分。
声明、定义和调用函数
函数声明,是为了告诉编译器函数的存在。提到了函数的返回类型、名称和参数列表。函数体写在其定义中。让我们借助一个例子来理解这一点。
#include < iostream>
using namespace std;
//declaring the function
int sum (int x, int y);
int main()
{
int a = 10;
int b = 20;
int c = sum (a, b); //calling the function
cout << c;
}
//defining the function
int sum (int x, int y)
{
return (x + y);
}
这里,最初的功能是声明,没有身体。然后在main()
函数里面是叫做,因为函数返回两个值的总和,变量c
是用来存储结果的。然后,最后定义功能为,指定功能体。我们也可以,声明&一起定义函数,但是之后要在调用之前完成。
调用函数
函数是通过名字来调用的。如果函数没有参数,可以直接使用它的名称调用它。但是对于带参数的函数,我们有两种方法可以调用它们,
- 按值调用
- 引用调用
按值调用
在这种调用技术中,我们将存储或复制的参数值传递给函数的形式参数。因此,原始值不变,只有函数内部的参数发生变化。
void calc(int x);
int main()
{
int x = 10;
calc(x);
printf("%d", x);
}
void calc(int x)
{
x = x + 10 ;
}
Ten
在这种情况下,实际变量x
没有改变,因为我们通过值传递参数,因此传递了 x 的副本,该副本被改变,并且该复制的值随着函数结束(超出范围)而被破坏。所以 main()中的变量 x 仍然有值 10。
但是我们可以通过使函数 calc() 返回值,并将该值存储在 x 中,来改变这个程序来修改原来的 x 。
int calc(int x);
int main()
{
int x = 10;
x = calc(x);
printf("%d", x);
}
int calc(int x)
{
x = x + 10 ;
return x;
}
Twenty
引用调用
在这种情况下,我们将变量的地址作为参数传递。在这种情况下,形式参数可以作为引用或指针,在这两种情况下,它们都将改变原始变量的值。
void calc(int *p);
int main()
{
int x = 10;
calc(&x); // passing address of x as argument
printf("%d", x);
}
void calc(int *p)
{
*p = *p + 10;
}
Twenty
注意:如果你没有指针的先验知识,一定要先研究指针。