C++之引用

文章目录


C++的引用是一个非常方便的用法,它可以给一个变量取别名,而又不是简简单单的赋值操作,而是相当于编译器自动会创建一个指针常量来指向需要被引用的变量,而指向之后就没办法发生,就不能再引用其他变量了。

int a=10;int &b=a;int c=100;
会等于》int *const b=&a;
如果再&b=c这就是非法操作了
b=c是成立的,因为这是简单的赋值操作
在内部相当于*b=c;
只不过这些操作都是编译器帮你做好了

这里可以举几个实例

①引用作为函数的参数进行传递
#include <iostream>
using namespace std;
void changeNum(int &a,int &b){
        int temp;
        temp=a;
        a=b;
        b=temp;
}
int main(){
        int a=100;
        int b=200;
        cout<<"a="<<a<<endl;
        cout<<"b="<<b<<endl;
        changeNum(a,b);
        cout<<"a="<<a<<endl;
        cout<<"b="<<b<<endl;

        return 0;
}

在这里插入图片描述

熟悉指针操作的就会看出这里的引用的作用就相当于指针,对指针内部的数据进行操作也会达到相同数值调换的作用

②引用作函数的返回值
#include <iostream>
using namespace std;
int &func(int &p){
        return p;
}
int main(){
        int a=100;
        int b=200;
        cout<<"a="<<a<<endl;
        func(a)=300;
        cout<<"a="<<a<<endl;
        return 0;
}

在这里插入图片描述
这里看到函数可以作为左值来赋值,这再C语言里是非法的,但在C++中如果返回值是引用类型的变量则是合法的。

③当数据被函数引用时,如果不想被改变,可以使引用变量再加一个const,这样可以防止误操作
#include <iostream>
using namespace std;
int &func(const int &p){
			
        return p;
}
int main(){
        int a=100;
        int b=200;
        cout<<"a="<<a<<endl;
        func(a)=300;
        cout<<"a="<<a<<endl;
        return 0;
}

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值