C++初学-引用(取别名)

变量引用

之前在C学的的指针,需要定义一个指针变量,且最好要初始化,不让可能成为野指针,而在C++这里初学的一个引用:

int a=10;//定义一个整型a
int &b=a;//引用操作或者叫取别名

学过指针的小伙伴应该理解,b相当于一个指向a的指针变量,可以操作变量a所在地址的值,

但是需要注意不能单独定义b,必须初始化,且初始化后不能改变b的指向了,相当于

int *const b=&a; 即b的指向不可以变,而其指向的内容可以变化,引用本质上就是指针常量。

int &b;//错误

函数引用

学C的时候在函数调用的时候我们习惯性用指针,比如

void swp(int *a,int *b)
{
    
    int temp=*a;
    *a=*b;
    *b=*temp;
}//定义函数

int main()
{
    int a = 10;
    int b = 20;
    str(&a,&b);//函数参数址传递
    return 0;
}

这是标准的函数参数址传递(值传递就不罗嗦了)。

而C++中的引用则比较类似,用起来简单方便,还与C中的址传递效果一样

void str(int &a,int &b)
{
    int temp=a;
    a=b;
    b=temp;
}//定义函数

int main()
{
    int a = 10;
    int b = 20;
    str(a,b);//函数参数引用
    return 0;
}

是不是和址传递比较像,使用起来少了很多*****符号。

  • 注意
  • 引用做函数返回值时,不要返回局部变量
  • int &test01()//返回局部变量引用
    {
       int a =10;
        return a;
    }
    
    int main()
    {
        int &ref=test01();
        //返回的是局部变量的引用,局部变量在栈区,函数调用结束就会销毁,会导致下次ref的值发生变化
    }

  • 如果对函数参数传参进行引用,如果输入的值不要求改变,尽量使用const修饰,C里也要注意,即常量的引用。
  • void swp(const int &a);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值