C++ 按值&引用传值

C++ 按值&引用传值 首页 / C++入门教程 / C++ 按值&引用传值

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

CPP Call by value and call by reference in cpp 1

让我们一一理解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++语言中的引用调用的概念:

链接:https://www.learnfk.comhttps://www.learnfk.com/c++/call-by-value-and-call-by-reference-in-cpp.html

来源:LearnFk无涯教程网

#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<<"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   

按值和按引用调用区别

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

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

深入浅出gRPC -〔李林锋〕

人人都能学会的编程入门课 -〔胡光〕

Java业务开发常见错误100例 -〔朱晔〕

手机摄影 -〔@随你们去〕

实用密码学 -〔范学雷〕

说透芯片 -〔邵巍〕

Web 3.0入局攻略 -〔郭大治〕

超级访谈:对话玉伯 -〔玉伯〕

手把手带你搭建推荐系统 -〔黄鸿波〕

好记忆不如烂笔头。留下您的足迹吧 :)