引用 reference

1.定义
在c语言中,使用指针pointer可以间接获取,修改某个变量的值
在c++中,引用可以起到和指针相同的作用
int age = 20;
int &ref = age;//ref相当于age的别名
ref = 30; //此时age == 30
2.注:
a.引用相当于变量的别名
(基本数据类型,枚举,结构体,类,指针,数组等都可以引用)
在这里插入图片描述
在这里插入图片描述

b.对引用做计算,就是对引用所指向的变量做计算
c.引用在定义的时候就需要做初始化,一旦指向了某个变量,就不可以在更改(就不能在成为别的变量的引用),从一而终
d.可以利用引用初始化另一个引用,相当于某个变量的多个别名
e.不存在引用的引用,引用的指针,引用数组
int age = 10;
int &ref = age;
int &&ref2 = ref;//err 引用的引用
int & *p = &ref;//err 引用的指针
int &arr[4]; //err 引用数组
//数组的引用
方法1:
int arr[] = {1 ,2 ,3}; //ok 数组的引用
int (&ref) [3] = arr; //ok
ref[0] = 10; //ok
方法2:(建议使用)
int * const &ref = arr; //ok, arr代表数组的地址,并且是个常量
在这里插入图片描述

3.引用的价值
a. 比指针安全(空指针)
b。返回值可以被赋值
4. 引用的本质
引用的本质就是指针, 只是编译器消弱了他的功能,所以引用就是弱化了的指针
一个引用占用一个指针的大小

5.常引用
int age = 10;
const int &ref = age;//常引用
int const &ref = age;//同上。 常引用
const int *p = &age;//常指针
ref = 30;//err *p = 30; //err
//ref不能修改指向,但可以通过ref来修改所指向的变量
int & const ref = age; //类似int * const p = &age;
ref = 30; //ok
在这里插入图片描述
在这里插入图片描述

如果函数的形参是常引用,实参既可以是常数也可以是变量,否则只能是变量
在这里插入图片描述
int age = 10;
const double & ref = age;
age= 30;
cout << age << endl; //30
cout << ref << endl; //10 在这里插入图片描述
相当于:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值