C++基础之引用

1.引用是变量的一个别名
2.一个变量可以有多个引用
3.引用必须引用合法的内存空间
4.引用必须初始化
5.引用不能向指针改变指向一样改变引用
6.数组引用

int a[10] = {0};
int (&aref)[10] = a; 

7.引用的本质为指针常量

int a = 100;
int &aref = a;
//int * const aref = a;
aref = 10;
//*aref = 10;

8.函数传参3种方式:值传递,地址传递,引用传递
值传递是在栈中创建变量的副本,改变不了原值

9.非常量引用的初始值必须为左值。
何为左值:变量,数组元素,结构体变量成员,引用
右值:字面常量,包含多项的表达式比如a+b
普通变量为可修改左值
const变量为不可修改的左值

10.常量引用

const int& aref = 10;
//编译器操作
//int tem = 10;
//const int& aref = tem;

11.常量引用应用场景:不想修改外部变量但要传引用参数,可使用常量引用
12.常量引用可以进行隐式转换因为其编译器内部机制

int getdouble_noconst(int& a){
	return a*a;
}
int getdouble(const int& a){
	return a*a;
}
int main(){
	double x = 10.0;
	getdouble(x);//不会报错因为看编译器的内部操作
	const int x = 10;
	getdouble_noconst(x);//报错
}

13.总结:常量引用的好处:
避免无意中修改数据;
能处理const和非const实参,否则只能接受非const实参;
使函数正确生成并使用临时变量

14.使用引用变量的两个原因:
能够修改函数的数据
通过传递数据而不是整个引用,没有了副本的拷贝,提高程序的运行速度

15.1对使用传递的值而不做修改的函数:
一,如果数据比较小,如内置的数据类型或者小型的结构体,建议按值传递
二,如果数据是数组,使用指针,指针声明为指向const的指针
三,如果数据比较大,例如大型结构体,使用const指针或者const引用
四,如果数据是类对象,使用const引用
15.2对传递的值需要修改的情况:
一,如果数据比较小,如内置的数据类型或者小型的结构体,使用指针或引用
二,如果数据是数组,使用指针
三,如果数据比较大,例如大型结构体,使用指针或者引用
四,如果数据是类对象,使用引用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值