引用实际上就是给变量起个别名
1.引用的类型必须与其绑定的类型一致,说通俗一点就是给人取别名就得取个人用的,而不能起个动物用的。
double a=10.3;
int &b=a;//报错,一个double,一个int类型。
2.声明&的同时必须对其初始化,别的还兴许有点余地,但这个绝对不行,不初始化就立即报错。
int main(){
int &a;//报错,未初始化
int &a=10;//仍然报错,哎,不对啊,我不是初始化了吗?我们还得从定义下手,声明就是起别名,只能给变量起别名,10是常量,怎么取别名?
int a1;
int &a=a1;//这个才是正确的写法。
3.引用相当于一个变量的别名,因此不能用此别名去给别的变量当别名,这一点和指针不同。
4.引用并未开辟一块新的内存空间,极大的提高了程序效率。
5.当返回一个引用时,要注意被引用的对象不能超出作用域。所以返回一个对局部变量的引用是不合法的,但是,可以返回一个对静态变量的引用。
const int& func() { //最好写上const,养成好习惯。
int q;
//! return q; // 在编译时发生错误
static int x;
return x; // 安全,x 在函数作用域外依然是有效的
}
const作用:
1.类型方面。
2.防止数据被修改,使其处于只读状态,这也就说通了,为什么数组和字符都是常量,因为我们不能随意修改。
6.当引用作为形参时,形参的初始化不在类型定义的时候进行,而是在执行主调函数中的调用表达式,才为形参分配内存空间,同时用实参来初始化形参,这样引用类型的形参就通过形实结合,成为了实参的一个别名,对形参的任何操作也就是直接对实参的操作。
本文详细介绍了C++中的引用特性,包括类型一致性、初始化要求、不可二次赋值、引用作为参数及返回值的使用,以及const引用的作用。强调了引用作为变量别名的性质,其不占用额外内存,提高了程序效率。同时,讨论了引用在函数参数传递中的行为,特别是作为形参时如何与实参结合。
5002

被折叠的 条评论
为什么被折叠?



