C++ 按引用传递17 Mar 2025 | 4 分钟阅读 在 C++ 语言编写的程序中定义函数时。如果我们要调用函数,可以通过两种方式完成,它们是:
在讨论按引用调用方法之前,我们先了解两种调用函数的方式。 按值调用在按值调用方法中,每当我们向函数传递参数或变量时,都会将实际参数的副本发送给函数。因此,如果在函数中对变量进行了一些操作,它不会影响实际值。所以,变量不能被改变。 按引用调用在这里,实际变量的地址被发送到函数,因此在函数中对参数或变量所做的任何更改都将反映在实际变量上。这可以通过 C++ 中的两种方式实现:
C++ 中的按引用传递在此方法中,如果使用引用将变量发送到函数,则在函数中对变量所做的更改将反映在实际值中。 示例一个说明 C++ 中按引用调用的示例程序 输出 ![]() 说明在上面的程序中,有两个函数:一个是 main 函数,另一个是交换函数。 "main" 函数有两个变量。首先,我们在将两个变量传递给交换函数之前打印了这两个变量。之后,我们将变量传递给交换函数,该函数交换了这两个变量。在调用函数之后,我们再次打印了这两个变量,现在变量已经交换。这是 C++ 中按引用调用的完美示例。在这里,函数中对两个变量所做的更改反映在实际变量中。 使用指针按引用传递在此方法中,我们将变量或对象的指针传递给函数,而不是传递实际变量或实际对象,并且它将显示与上述方法相同的效果。在这里,函数内部对变量所做的更改将反映在实际变量中。 示例一个说明 C++ 中使用指针按引用调用的示例程序 输出 ![]() 说明在上面的程序中,有 4 个函数:分别是 add() 函数、sub() 函数、mul() 函数和 main 函数。 add() 函数将两个变量相加并将结果存储在 res 变量中, sub() 函数将第一个变量减去第二个变量并将结果存储在 res 变量中,而 mul() 函数将两个变量相乘并将结果存储在 res 变量中。 在这里,res 变量和其他变量通过使用指针的按引用传递方法传递给各自的函数。在 main 函数中,声明了变量,从用户那里获取了 a 和 b 变量,并将 res 变量初始化为零。因此,每当它被传递给函数时,更改都会反映在 res 变量上。 下一个主题C++ 中的 Fstream |
C++ 中的 Vector 是一种动态数组式容器,用于存储相同类型元素的集合。与数组不同,Vector 的大小可以动态增长或缩小,使其成为存储和操作数据的方便高效的数据结构。Vector 是……
阅读 4 分钟
在本文中,我们将讨论协程、用途、实现、示例和输出。什么是协程?协程是一类控制结构,其中控制流在不停止的情况下从一个例程传输到另一个例程。C++20 版本引入了 C++ 协程功能。协程是一种方法...
7 分钟阅读
相对于其右侧所有项最大的数组元素称为该数组的领导者。根据这一点,领导者将始终是右侧的元素。数组中的领导者问题本质上被解释为...
阅读 4 分钟
在本文中,我们将讨论一个 C++ 程序,该程序使用矩阵查找 Fibonacci 数。通过矩阵指数运算查找 Fibonacci 数是一种重要的技术,它利用矩阵的优势有效地计算 Fibonacci 序列。这种策略在处理大型……时非常有用。
阅读 3 分钟
在本文中,您将了解仿函数与函数之间的区别。但在讨论它们的区别之前,您必须了解 C++ 中的仿函数和函数。C++ 中的仿函数是什么?仿函数有时被称为“函数对象”。它是一个对象……
阅读 6 分钟
在本文中,您将通过其语法和示例了解 C++ 中的 std::regex_iterator。什么是 std::regex_iterator?C++ 标准库类 std::regex_iterator 表示用于在匹配正则表达式的字符串序列上分页的迭代器。它是常规...的一部分。
阅读 3 分钟
在基类中声明了关键字 virtual 的成员函数,并在派生类中重新定义(重写)的函数称为虚函数。后期绑定指令指示编译器在运行时执行调用的函数,通过……
阅读 3 分钟
简介:数学家和计算机科学家一直着迷于对称的序列,它们向前和向后读都相同。有效识别回文子串是计算机科学中的一个常见挑战。Manacher's Algorithm,一种由计算机科学家 Glenn Manacher 开发的开创性技术,提供了一种优雅的解决方案……
5 分钟阅读
在 C++ 中,std::cout 和 cout 是与 C++ 标准库的 iostream 模块关联的标准输出流。cout 对象是 ostream 类的实例,用于将数据输出到标准输出设备,通常是控制台或终端……
阅读 2 分钟
函数重载和函数覆盖在面向对象编程 (OOPs) 中对于实现代码重用和灵活性至关重要。尽管它们听起来可能很相似,但这两个概念在根本上是不同的。本博客的目标是让读者全面了解 C++...
阅读 6 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India