个性化阅读
专注于IT技术分析

在C++中按值调用和按引用调用

本文概述

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

CPP在中按值调用和引用调用

让我们一一理解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 实际参数和形式参数将在不同的存储位置中创建 实际参数和形式参数将在相同的存储位置中创建
赞(0)
未经允许不得转载:srcmini » 在C++中按值调用和按引用调用

评论 抢沙发

评论前必须登录!