c++ 的学习 contst引用的特点
1.临时数据
2.本来就不能改,那就放个30也没事
3.
◼ 引用可以被const修饰,这样就无法通过引用修改数据了,可以称为常引用
const必须写在&符号的左边,才能算是常引用
◼ const引用的特点
可以指向临时数据(常量、表达式、函数返回值等)
可以指向不同类型的数据
作为函数参数时(此规则也适用于const指针)
✓ 可以接受const和非const实参(非const引用,只能接受非const实参)
✓ 可以跟非const引用构成重载
◼ 当常引用指向了不同类型的数据时,会产生临时变量,即引用指向的并不是初始化时的那个变量
数组的引用
4.a+b的值是3 哪来的地址,默认情况肯定是不可以的,但是加上const
const 你右边放常量都可以,所以意思就是a+b是一个临时量 3才是常量
5.lambda 指的是匿名函数 ls.sort(lambda x :x[i],reverse=ture)
6.函数返回值:func()f 返回的是8 是返回值是临时值,
int &ref=func()是不可以的
const 常引用不可以改,无法通过常引用来改你右边的值,右边的也本来不可以,,改合情合理
所以常引用就是你得保证右边的值就是不可以改的
7.表达式:
8.c++ viod sum(int &v1,int &v2) 这是引用不是c语言的取值符
sum(a,b) 可以 sum(10,20)不可以
常引用可以接受a与b 和10与20
那就是 a+b就是30就是临时值,但是sum(a,b) 这里就不是临时值而是变量,const修饰的东西,把变量和常数都可以赋到const修饰的东西
9.
10.
11.
12.
13.✓ 可以跟非const引用构成重载
函数名一样 参数不一样
14.总结:const 引用函数 比非const 的范围广
15.
16.
17.
18.◼ 当常引用指向了不同类型的数据时,会产生临时变量,即引用指向的并不是初始化时的那个变量
19.double 类型的引用指向了整型数据
20.汇编很重要,可以看清代码本质
21.汇编代码取决于cpu
22.
23.
24.
◼ 当常引用指向了不同类型的数据时,会产生临时变量,即引用指向的并不是初始化时的那个变量
25.至于你 看到 const long &r =age
比较懵与空白的话:这样想 把const 分割开
剩下long &r=age
用long 类型的 r 引用age age肯定是被引用
以后读这种引用也不要读成用 把 int 类型age 赋于r , 这种读法只是适用与 age与r是一种类型的
直接就从左到右的正常读 a=2 就读a等于2
long类型的r引用age