引用的介绍

引用📖

1. 引用的定义
int a = 3;
int &r = a;		// 此时叫做r引用a, r是a的别名

注意: 当初始化引用后就不能修改了

int b = 4;
r = b;		//此时只相当于将 b 的值赋给 a;
2. 引用的作用
  • 当 r 引用了 a , 对 r 修改对 a 也会生效
r = 7;
cout << a << endl;
cout << t << endl;

/* 输出:
	7
	7
*/
  • 引用也可以引用 " 引用 "
int &r_to_r = r;
// 对 r_to_r 修改也是一样的效果, 和 r 同时引用了 a
3. 常引用
  • 不能通过常引用去修改其引用的值
int a = 3;
const int &r = a;

r = 7;		//这样是不行的, 编译出错
a = 7;		//可以修改本身
  • 常引用和非常引用的关系

    • const ElemType & 和 ElemType & 是不同的类型
    • ElemType & 或 ElemType 的变量可以用来初始化 const ElemType &
    int a = 3;
    int &r = a;
    const int & r_static = r;
    
    • 但const ElemType & 不能用来初始化 ElemType &
    int a = 3;
    const int &r_static = a;
    int &r = r_static;		// 编译出错		
    // 因为r_static为常引用(不可修改引用值), 不能通过另一个引用来试图修改
    
4. 实际运用
  • 使用指针修改
void swap(int* a, int* b){
    int temp = *a; *a = *b; *b = temp;
}
swap(&a, &b);
  • 使用引用修改
void swap(int &a, int &b){
    int temp = a; a = b; b = temp;
}
swap(a, b);

这么一对比, 是不是引用显得简洁的许多 !

5. 奇怪的返回值
int& getElement(int * a, int i)
{
	return a[i];	// 定义返回值是引用类型
}
int main()
{
	int a[] = {1,2,3};
	getElement(a,1) = 10;	// 将返回的a[1]的引用修改为10
	cout << a[1] ;			// 输出 10
	return 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值