C++ 按值传递和按引用传递

C++ 按值传递和按引用传递

在C语言中,有两种传递值或数据给函数的方式:按值传递和按引用传递。按值传递时原始值不会被修改,但按引用传递时会修改原始值。

C++ 按值传递和按引用传递

让我们逐一了解C++语言中的值调用和引用调用。

在C++中进行值调用

在值调用中, 原始值不会被修改。

在值调用中,传递给函数的值被函数参数在堆栈内存位置中本地存储。如果您更改函数参数的值,仅对当前函数有效。它不会改变调用方法(如main())中变量的值。

让我们通过下面的示例来理解C++语言中的值调用的概念:

#include <iostream>
using namespace std;
void change(int data);
int main()
{
int data = 3;
change(data);
cout << "Value of the data is: " << data<< endl;
return 0;
}
void change(int data)
{
data = 5;
}

输出:

Value of the data is: 3

C++ 中的按引用调用

在按引用调用中,原始值会被修改,因为我们传递的是引用(地址)。

在这里,传递给函数的是值的地址,因此实际参数和形式参数共享相同的地址空间。因此,在函数内部修改的值也会在函数内外反映出来。

注意: 要理解按引用调用,您必须对指针有基本的了解。

让我们通过下面的例子来理解 C++ 中的按引用调用的概念:

#include<iostream>
using namespace std;  
void swap(int *x, int *y)
{
 int swap;
 swap=*x;
 *x=*y;
 *y=swap;
}
int main() 
{  
 int x=500, y=100;  
 swap(&x, &y);  // passing value to function
 cout<<"Value of x is: "<<x<<endl;
 cout<<"Value of y is: "<<y<<endl;
 return 0;
}  

输出:

Value of x is: 100
Value of y is: 500   

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

编号 值传递 引用传递
1 将值的副本传递给函数 将值的地址传递给函数
2 函数内部的更改不会反映在其他函数中 函数内部的更改也会反映在函数外部
3 实际参数和形式参数将在不同的内存位置创建 实际参数和形式参数将在相同的内存位置创建

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程