C++ 中的引用

文章介绍了C++中的引用概念,它作为类型别名,必须初始化且初始化后不可改变。引用常用于函数参数,简化了指针的操作,同时在函数返回值中使用引用能确保返回的有效性,防止内存泄漏。const修饰的引用提供了一种保护实参不被修改的方式。
摘要由CSDN通过智能技术生成

1、引用的使用及其注意事项

        引用在C++中常常用来代替指针操作,今天我们就来谈谈引用的使用及其一些注意事项;

引用的作用:引用通俗的理解就是类型别名。如:

 对应代码表示为:int  a = 88;  int &ret = a;

引用的注意事项:1、引用必须初始化  2、引用初始化后不再改变

这上面的这两个注意事项要从引用的本质理解。引用的本质为 指针常量。

我们知道,指针常量中常量const 修饰的是指针变量,而不是修饰指针,例:int* const p;

其本质是可以改值,不能改指向!所以引用的特点也是只能修改所指向对象的值,不能修改指向。

2、利用引用作为函数形参

根据上面我们了解了引用的本质后,就可以知道引用适合作为函数形参。下面我们来对比利用引用和指针来编写进行两数交换的函数:

// 指针作为函数形参
void Swap01(int *a,int *b){
    int temp = *a;
    *a = *b;
    *b = temp;
}

// 引用作为函数形参
void Swap02(int &a,int &b){
    int temp = a;
     a = b;
     b = temp;
}

指针作为函数形参,代码相对于引用作为函数形参比较复杂,而且传参的时候还要记得加取地址符,修改所指向的地址还用解引用,很容易出错,忘记写取地址符等等。

而引用就很好的解决了这些问题,只需要注意实现本身,不需要过分注意语法。

3、引用作为函数返回值

        引用作为函数返回值与函数返回指针一样,都是返回索引地址,所以必须返回有效地址。但是利用引用我们可以保证返回的指向不会改变,不会导致返回后不小心改变了指针的指向,导致内存泄漏问题(利用了引用的特点)。

// 引用作为函数返回值
int& sumNumber(int a,int b){
    static int sum = a + b;
    return sum;
}

这里加static的作用是为了保证返回的是有效地址。

4、const 修饰引用

const修饰引用的本质其实是: const  Type * const  ptr;

使得不能改指向也不能改值!常常作为函数形参,防止在函数中不小心改变了引用所指向的值。

// 常量引用
void output(const int& num){
    std::cout << num << std::endl; 
}

5、总结

*  注意事项:
*  1、引用必须要初始化
*  2、引用在初始化后不能再被更改指向
*
*  作用:函数传参时,可以利用引用的技术让形参修饰实参
*  优点: 可以简化指针修改实参
*  总结:通过引用参数产生的效果同按地址传递是一样的。引用的语法更加简单清楚
*
*
*  引用可以作为函数返回值
*  1、不要返回局部变量引用
*  2、函数的调用可以作为左值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值