迟来的函数传参补充——传引用【引用调用】【c++】

文章目录

  • 1、传引用
    • 1.1、特点
    • 1.2、使用
      • 1.2.1、一般引用
      • 1.2.2、常量引用
    • 1.3、案例
      • 1.3.1、常见变量引用做函数参数
      • 1.3.2、结构体引用做函数参数

1、传引用

函数传参,几乎一直在用简单的值传递,或者传指针,前者生成一个源结构的副本,后者链表或者树的时候用的比较多,本文补充到一个类似值传递的函数调用方式,函数定义的传参位置却是地址接收方式,这就是传引用

其实早就在王道见过,只是没注意其中的奥妙,怪就怪我线性表题目爱用数组解决,栈和队列喜欢用结构体内置函数的方式实现,完全用不到引用。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.1、特点

  • 仅从代码书写来看,整体上只有函数定义参数的这一个位置有所不同。
  • 相比值传递,几乎无传参时间开销(传大型结构体、长字符串尤为明显)

1.2、使用

1.2.1、一般引用

void f(int &a,int &b){
	//...
}


f(a,b);

函数声明:

void f(int &,int &);

1.2.2、常量引用

稍微讲究一点的用法,往往是定义一个输出函数的传入参数设为常引用,意味着无更改要求。

void showResult(const int &res){
	cout<<res<<endl;
}


showResult(res);

函数声明:

void showResult(const int &);

1.3、案例

1.3.1、常见变量引用做函数参数

比如实现一个交换两个变量的值,过去确实只会值传递,像是涉及到改变值的操作,都会下意识的去写在main函数中,将结果在传给下一个需要相关值的函数。有了引用,main函数会变得更加简洁。

#include<iostream>
#include<cstring>
#include<algorithm>
#include<stack>
using namespace std;


void swap(int &x,int &y){
	int t;
	t =x;
	x=y;
	y=t;
}

int main(void){
	int a = 1, b =2;
	swap(a,b);
	cout<<"a: "<<a<<" b: "<<b<<endl;
}

1.3.2、结构体引用做函数参数

除非参数结构很小,否则一般会通过引用将结构体传递给函数。

在这里插入图片描述文章来源地址https://uudwc.com/A/D09n

原文地址:https://blog.csdn.net/weixin_44041700/article/details/131248501

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年06月17日 18:20
MAVEN - 使用maven-dependency-plugin的应用场景是什么?
下一篇 2023年06月17日 18:20