1.引用本质
引用的本质:给变量起别名。语法:数据类型别名=原名;原理:引用的原理是在c++内部实现一个指针常量inta=10;intref=a;//实质是int*constref=a;2.引用注意事项
1.引用必须初始化
2.引用在初始化后,不可以改变
inta=10;intc=20intb=a;1.引用必须初始化intb;//错误的2.引用一旦初始化,就不可以改变intb=a;b=c;//错误的.引用做函数参数
作用:函数传参时,可以利用引用的技术让形参修饰实参。
优点:可以简化指针修改实参
intfunc(inta,intb){inttemp=a;a=b;b=a;}intmain(){inta=10;intb=20;func(a,b)}//a,b参数传入func函数,使用别名可以修改实参4.引用做函数的返回值
1.不要返回局部变量的引用
inttest(){//返回值是引用inta=10;returna;}intmain(){intref=test();coutrefendl;//第一次输出可以成功,因为局部变量保存在栈区,程序结束后系统保留一次coutrefendl;//第二次输出不成功,是因为局部变量保存在栈区,函数结束后系统保留一次,第二次空间释放}
2.函数的调用可以作为左值
inttest(){//返回值是引用staticinta=10;//静态变量存放在全局区,整个程序结束后才释放returna;}intmain(){intref=test();//ref的引用指向了test的应用所以a的别名是refcoutrefendl;//10test()=//test的返回值是一个引用,所有等于ref=coutrefendl;//}5.常量引用
作用:常量引用主要用来修饰形参,防止误操作
在函数形参列表中,可以加const修饰形参,防止形参修改实参
inttest(constinta){a=//错误了形参是const修饰的,不可以在改变了coutaendl;//a=10,而不是}intmain(){inta=10;intref=20;//不对,引用必须引一块合法的内存空间。20只是一个字面量constintref=20;//对了,加上const之后,编译器将代码修改inttemp=10;intref=temp;ref=0;//错误了已经是常量,不能修改test(a);}
#编程语言#