C++---引用 引用做函数形参、返回 常量引用

解释

引用相当于给对象起了一个新的名字。
简单用法:

#include <iostream>
#include <string>
using namespace std;

int main()
{
    int a = 10;
    int &b = a;

    cout<<b<<endl;

    return 0;
}

结果:
在这里插入图片描述

注意事项

1、引用必须初始化
与初始化变量不一样,在定义引用的时候,程序会把引用和它引用的对象绑定在一起,不是简单的赋值操作,引用初始化完成后,它将和它引用的对象一直绑定在一起,无法再像赋值操作那样再绑定别的对象
2、引用必须类型匹配
像上面例子,a是一个整型,那么引用就不能是其他的类型
如:
在这里插入图片描述
是错误的
3、引用的初始化值必须是一个对象,不能是值

在这里插入图片描述

是错误的

const的引用

顾名思义,就是对常量的引用

#include <iostream>
#include <string>
using namespace std;

int main()
{
    const int a = 20;
    const int &b = a;

    cout<<b<<endl;

    return 0;
}

注意:这里引用之后,是不能通过b修改a的值的
另外一种用法:

#include <iostream>
#include <string>
using namespace std;

int main()
{
    int a = 20;
    const int &b = a;
    
    cout<<b<<endl;

    return 0;
}

这里同样,不能对b进行操作改变a,但是a可以由其他途径正常修改

引用做函数形参


#include <iostream>
#include <string>
using namespace std;

void myswap(int &a, int &b)
{
    int tmp;
    tmp=a;
    a=b;
    b=tmp;
}

int main()
{
    int a = 20, b = 10;
    myswap(a,b);
    cout<<"a:"<<a<<'\t'<<"b:"<<b<<endl;

    return 0;
}

输出结果
在这里插入图片描述
这里的作用相当于指针,通过引用形参可以修改实参

引用做函数返回

用法

#include <iostream>
#include <string>
using namespace std;

int a = 10;
int& example()
{
    return a;
}

int main()
{
    int &b = example();//使用一个引用类型来接收引用类型的返回值
    cout<<b<<endl;
    return 0;
}

但是,不能返回局部变量的引用

在这里插入图片描述
这里a是局部变量,不能对它做引用返回。因为当前函数结束后,a变量的内存会被释放掉,如果函数结束后,还对该地址进行操作就是非法操作,是不允许的。

发布了14 篇原创文章 · 获赞 30 · 访问量 8732

猜你喜欢

转载自blog.csdn.net/weixin_43086497/article/details/104905564