C++ 中的值调用和引用调用

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

CPP 按值调用和按引用调用 cpp 1

下面我们来一一了解C++语言中的值调用和引用调用。


在 C++ 中按值调用

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

在按值调用中,传递给函数的值由函数参数本地存储在堆栈内存位置中。如果更改函数参数的值,则仅针对当前函数进行更改。它不会改变调用者方法中变量的值,例如 main()。

让我们通过下面给出的例子来尝试理解 C++ 语言中按值调用的概念:

例子 (Example)

#include <iostream>  
using namespace std;  
void change(int data);  
int main()  
{  
int data = 3;  
change(data);  
cout << "数据的值为:" << data<< endl;  
return 0;  
}  
void change(int data)  
{  
data = 5;  
}

输出:

数据值为:3

在 C++ 中通过引用调用

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

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

注意:要理解引用调用,必须具备指针的基本知识。

让我们通过下面给出的例子来尝试理解C++语言中引用调用的概念:

例子 (Example)

#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);  // 将值传递给函数  
 cout<<"x 的值为:"<<x<<endl;  
 cout<<"y 的值为:"<<y<<endl;  
 return 0;  
}

输出:

x 的值为:100
y 的值为:500

C++中按值调用和按引用调用的区别

不。按值调用通过引用调用
1将值的副本传递给函数值的地址被传递给函数
2函数内部所做的更改不会反映在其他函数上函数内部所做的更改也反映在函数外部
3实际参数和形式参数将在不同的内存位置创建实际参数和形式参数将在同一内存位置创建


上一主题 C++ 函数 下一主题 C++ Recursion 递归
  • 使用社交账号登录,本站支持
全部评论(0)