C++ 按引用传递

17 Mar 2025 | 4 分钟阅读

在 C++ 语言编写的程序中定义函数时。如果我们要调用函数,可以通过两种方式完成,它们是:

  • 按值调用
  • 按引用调用

在讨论按引用调用方法之前,我们先了解两种调用函数的方式。

按值调用

在按值调用方法中,每当我们向函数传递参数或变量时,都会将实际参数的副本发送给函数。因此,如果在函数中对变量进行了一些操作,它不会影响实际值。所以,变量不能被改变。

按引用调用

在这里,实际变量的地址被发送到函数,因此在函数中对参数或变量所做的任何更改都将反映在实际变量上。这可以通过 C++ 中的两种方式实现:

  • 传递变量的引用
  • 通过使用指针实现按引用传递

C++ 中的按引用传递

在此方法中,如果使用引用将变量发送到函数,则在函数中对变量所做的更改将反映在实际值中。

示例

一个说明 C++ 中按引用调用的示例程序

输出

Call by the reference in C++

说明

在上面的程序中,有两个函数:一个是 main 函数,另一个是交换函数。 "main" 函数有两个变量。首先,我们在将两个变量传递给交换函数之前打印了这两个变量。之后,我们将变量传递给交换函数,该函数交换了这两个变量。在调用函数之后,我们再次打印了这两个变量,现在变量已经交换。这是 C++ 中按引用调用的完美示例。在这里,函数中对两个变量所做的更改反映在实际变量中。

使用指针按引用传递

在此方法中,我们将变量或对象的指针传递给函数,而不是传递实际变量实际对象,并且它将显示与上述方法相同的效果。在这里,函数内部对变量所做的更改将反映在实际变量中。

示例

一个说明 C++ 中使用指针按引用调用的示例程序

输出

Call by the reference in C++

说明

在上面的程序中,有 4 个函数:分别是 add() 函数、sub() 函数、mul() 函数和 main 函数。 add() 函数将两个变量相加并将结果存储在 res 变量中, sub() 函数将第一个变量减去第二个变量并将结果存储在 res 变量中,而 mul() 函数将两个变量相乘并将结果存储在 res 变量中。

在这里,res 变量和其他变量通过使用指针的按引用传递方法传递给各自的函数。在 main 函数中,声明了变量,从用户那里获取了 a 和 b 变量,并将 res 变量初始化为零。因此,每当它被传递给函数时,更改都会反映在 res 变量上。


下一个主题C++ 中的 Fstream