C++的引用-01引用作函数参数分析

学过C语言的时候,我们知道函数参数是按值传递的,所以我们无法去通过函数去修改一个变量的值,在C语言中,我们采取使用向函数传递一个指针的方式去间接执行这样的过程,但是问题是每次传入指针p后,当要访问p指向的元素时,我们都要使用*操作符去解指针,这样就会带来一定的麻烦,因为谁也不想每次都使用*p来访问这个元素。在C语言中,这个问题似乎没有很好的解决方式,但是C++就是C++,C++提出了引用的概念,来解决这么一个问题。

首先,何为引用呢,首先我们理解一下 下面这个非常简单的语句

int a;

这样一个语句是什么意思


好的,这个图的意思,是,我们在内存中找到一个int型的内存空间,给他取名为a,以后我们要找到这块内存,进行读写操作时,只要使用a就可以了。

既然如此,我们可以给一块内存取个名字,我们可以给他再取一个名字吗?就像,一个人可以由大名,也可以由小名,也可以有许许多多的外号,不论是通过哪个名字我们都可以找到这个人。而C++的引用就实现了这个功能,我们可以使用下面这条语句

int &b=a;

这句话是什么意思呢,如图:

该图的意思是,我找到一个叫a的变量,告诉他,你指向的内存除了叫a也可以叫b,无论我们使用a还是b指的都是这块内存。所以引用就是取别名,也就是现实生活中的取外号,这是一个道理。

很容易知道,我们无论使用a去操作还是使用b去操作,都是对同一块内存空间操作。

现在大家应该基本知道了啥是引用了。继续。。。

给大家一个经典的d代码

void func(int a,int b){
    int temp;
    temp=a;
    a=b;
    b=temp;
    return;
}

很显然,这个函数是想交换a和b的值,但是很显然,一定会失败,因为加载函数时,函数的a和b只是获得了传来的值,对于原有内存并没有改变。但是我们稍微给点改动

void func(int &a,int &b){
    int temp;
    temp=a;
    a=b;
    b=temp;
    return;
}


注意区别,区别不大,多了一个&,但是这个时候函数内部操作a和b时却指向了实参的实际内存,这样就达到了目的。


这里是引用在作函数参数的时候的作用。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值