c++ 引用传递的使用 16

作者 : 慕源网 本文共2115个字,预计阅读时间需要6分钟 发布时间: 2022-04-20 共436人阅读

c++ 引用传递的使用,在C++中,引用传递被定义为引用作为参数传递给函数的值的地址,这意味着传递给函数的值的地址不是实际值。这种传递这些值的方法称为按引用传递,而传递实际值的方法称为按值传递。通常,按引用传递也称为按调用函数中的参数中声明的值的地址传递(相对于被调用函数的形式参数),其可以通过使用该引用传递(使用值的地址)来修改参数的值。

C++中引用传递的工作原理

在本文中,我们将看到C++中的引用传递。在C++中,我们已经看到简单的变量作为参数传递给函数,所以类似地,我们也可以传递参数的地址或将引用作为参数传递给C++中的函数,使用这种按引用传递的概念,当我们在程序中需要更改参数的值时,这是非常重要的。

如果我们了解C++中的指针,通常就会理解引用传递。因此,引用传递被简单地定义为传递参数中的值的地址,这些参数是引用参数,每当函数被调用函数调用时,都会用实际参数进行初始化,被调用函数可以修改这些引用传递的值,但当我们在被调用函数的参数中使用按值传递时,不能修改这些值。

C++中按引用传递的示例

下面是C++中通过引用传递的示例:

例#1

代码:

#include<iostream>
using namespace std;
void callee_func(int &i)
{
i = i+2;
}
int main()
{
int i = 0;
cout << "Value of i before it is called by the caller function is :" << i << endl;
callee_func(i);
cout << "Value of i now is :" << i << endl;
}

输出:

在上面的程序中,首先,我们定义了一个函数,它是一个被调用函数,在上面的例子中,我们传递了一个引用,这意味着我们传递了变量“I”的地址,为了在C++中获得地址,我们将其声明为“&I”。在callee_func中,我们有一个非常简单的计算,我们存储的I值增加了两次“I=I+2”。然后我们定义main函数,它是一个调用者函数,因为我们在main函数中调用了callee_func。

在main()函数中,我们正在初始化I=0的值,然后调用callee_func(),我们已经传递了I的引用,并且我们可以看到调用者和callee_func都指向变量I,因为我们已经传递了I的引用。在调用calleefunc()之后,I的值从0更改或修改为2。这样,在上面的屏幕截图中,我们可以看到上述程序的输出。通过这种方式,我们可以看到没有对I进行新的复制,因此可以节省复制的开销,当我们传递较大类的对象时,这在创建程序时非常有效。

在C++中,我们有const关键字,它用于设置常量值,这意味着我们不能更改变量的值。因此,如果我们使用的是引用传递,并且我们不想更改或修改参数中传递的变量的值,那么我们可以在声明变量的数据类型之前使用这个“const”关键字,这将不会修改被调用函数中按引用传递的变量的值。

例#2

代码:

#include<iostream>
using namespace std;
void callee_func(const int& p, int& q)
{
//p = p * 2;
q = q + 1;
}
int main()
{
int p = 4, q = 4;
cout << "Value of p before it is called by the caller function is :" << p << endl;
cout << "Value of q before it is called by the caller function is :" << q << endl;
callee_func(p, q);
cout << "Value of p now is :" << p << endl;
cout << "Value of q now is :" << q << endl;
return 0;
}

输出:

在上面的程序中,我们可以看到在callee_func()中我们声明了两个变量,一个使用“const”关键字作为引用,如“const int&p”和其他“&Q”。因此,我们尝试通过在参数中传递这些变量的引用来打印变量p和Q的值,它将修改这些值。如果我们使用“const”关键字,我们不能修改,所以在上面的程序中,我们可以将变量“p”设置为常量,所以我们不能访问引用的更改值。因此,我们在函数的参数中使用引用传递之前和之后打印这些值。因此,当您尝试通过“p”的引用访问该值时,由于该值不能更改,因此会出现错误。

结论

在本文中我们学习了c++ 引用传递的使用,我们得出结论,C++中的引用传递定义为在被调用函数的参数中传递变量的地址,称为引用传递,这意味着即使被调用函数内部的值发生变化,我们也可以修改这些值,这些变量在被调用函数和调用函数中是相同的。在本文中,我们看到了一个简单的示例,说明如何使用变量的地址或引用传递来获取作为参数传递的变量的最近值。在本文中,我们还看到,如果我们不希望通过引用传递来修改值,这通常是一个非法调用这种通过引用传递的例子,如果我们试图通过引用变量修改这个常量,这可能会发生异常。

推荐文章

这是C++引用传递的使用的指南。在这里,我们通过例子分别讨论了C++中引用传递的介绍和工作方式。您还可以查看以下文章以了解更多信息


慕源网 » c++ 引用传递的使用 16

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录