C ++中按值传递和按引用传递之间的区别

在C ++中,我们可以通过不同的方式将参数传递给函数。这些不同的方式是-

  • 按值致电

  • 通过参考电话

  • 按地址致电

有时,按地址调用称为按引用调用,但是在C ++中它们是不同的。在按地址调用中,我们使用指针变量来发送确切的内存地址,但是在按引用调用中,我们传递引用变量(该变量的别名)。这个功能在C语言中不存在,我们必须传递指针才能获得这种效果。在本节中,我们将看到按引用调用比按值调用有什么优点,以及在哪里使用它们

按值致电

在按值调用中,作为参数传递的实际值在对其执行某些操作后不会更改。使用按值调用时,它将在内存的堆栈部分中创建该变量的副本。更改值时,它将更改该副本的值,实际值保持不变。

范例程式码

#include<iostream>
using namespace std;

void my_function(int x) {
   x = 50;
   cout << "Value of x from my_function: " << x << endl;
}

main() {
   int x = 10;
   my_function(x);
   cout << "Value of x from main function: " << x;
}

输出结果

Value of x from my_function: 50
Value of x from main function: 10

通过参考电话

在按引用调用中,对实参传递的实际值在对其执行某些操作后会更改。使用按引用调用时,它将在内存的堆栈部分中创建该变量的引用副本。是使用引用来获取值。因此,当使用参考值更改值时,它将更改实际变量的值。

范例程式码

#include<iostream>
using namespace std;

void my_function(int &x) {
   x = 50;
   cout << "Value of x from my_function: " << x << endl;
}

main() {
   int x = 10;
   my_function(x);
   cout << "Value of x from main function: " << x;
}

输出结果

Value of x from my_function: 50
Value of x from main function: 50

在哪里使用按引用致电?

  • 当我们要将传递的参数的值更改为调用程序函数时,主要使用按引用进行调用。

  • 一个函数只能返回一个值。当我们需要一个函数中的多个值时,可以通过这种方式将它们作为输出参数传递。