c++函数引用参数

C++当中有一个概念叫做引用,引用是对C语言的一个扩展,引用相当于是变量的别名。之所以增加引用,主要是为了利用引用作为函数的形式参数。

int a;
int &b = a;

以上b就成为了a的引用。其中b就是a的别名而已,他们代表的都是同一个单元。

为什么c++函数的形参一般使用引用?

让我们看两个例子。例子是输入两个值然后替换两个值的位置。
(1)使用实参作为形参

#include <iostream>

using namespace std;
void swap(int a,int b){
    int temp;
    temp = a;
    a = b;
    b = temp;
}
int main(){
    int i = 3,j = 5;
    swap(i,j);
    cout <<i<<","<<j<<endl;
    return 0;
}

计算结果

计算结果仍然为3,5


计算结果

(2)使用引用作为形参

#include <iostream>
using namespace std;
void swap(int &a,int &b){
    int temp;
    temp = a;
    a = b;
    b = temp;
}
int main(){
    int i = 3,j = 5;
    swap(i,j);
    cout <<i<<"."<<j<<endl;
}

计算结果

计算结果为5,3


计算记过

这是为什么呢?

例子1当我们使用实参作为形参的时候,i,j进入到swap函数的时候实际上是将值copy了一份到a,b当中,然后a,b进行计算以后结果虽然是已经替换过的了,但是没有返回给i,j。为了解决这个问题我们使用引用。在例子2当中,i,j传入到swap当中的时候实际上是给i和j添加了引用 &a和&b,a和b这时所代表的东西和i和j是一样的东西,所以替换的时候最后i和j的值输出也发生了变化。

扩展思考

同理我们使用指针*p也可以实现同样的结果,指针和引用的区别在于,引用不需要再开辟新的内存空间,而指针会开辟一个新的存储空间用来存储变量的地址。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,429评论 0 2
  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 9,076评论 0 13
  • 计算机二级C语言上机题库(南开版) 1.m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平...
    MrSunbeam阅读 6,506评论 1 42
  • 指针 在了解什么是指针之前,我们需要先搞清楚数据在内存中是如何存储的,又是如何读取的。 如果在程序中定义一个变量,...
    Longshihua阅读 1,027评论 0 4
  • 日前到澳门度假,澳门很小。除了casino和大三巴,也就是走走逛逛吃吃。 玛嘉烈蛋挞,葡国鸡,钜记手信,义顺牛奶公...
    古道又风铃阅读 733评论 0 0