本文概述
- 在C ++中按值调用
- 通过C ++进行引用调用
- C ++中按值调用和按引用调用之间的区别
文章图片
让我们一一理解C ++语言中的按值调用和按引用调用。
在C ++中按值调用 在按值调用中, 原始值不会被修改。
在按值调用中, 传递给函数的值由函数参数本地存储在堆栈存储器位置中。如果更改功能参数的值, 则仅对当前功能进行更改。它不会更改调用方方法(例如main())内的变量值。
让我们尝试通过以下示例了解C ++语言中按值调用的概念:
#include <
iostream>
using namespace std;
void change(int data);
int main()
{
int data = http://www.srcmini.com/3;
change(data);
cout <
<"Value of the data is: " <
<
data<
<
endl;
return 0;
}
void change(int data)
{
data = http://www.srcmini.com/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 | 实际参数和形式参数将在不同的存储位置中创建 | 实际参数和形式参数将在相同的存储位置中创建 |
推荐阅读
- C++ deque双端队列用法
- C++ break语句
- C++中的矩阵乘法
- C++ multimap用法
- C++异常处理
- C++ bitset用法
- C++ for循环语句详解
- C++ While循环语句
- C++安装