引用

引用

引用的语法

语法: 数据类型 &别名 = 原名

  • 引用的本质是指针常量
(int& b = a) == (int * const ref = &a)
//自动转换为 int* const ref = &a; 指针常量是指针指向不可改,也说明为什么引用不可更改
int& ref = a; 
ref = 20; //内部发现ref是引用,自动帮我们转换为: *ref = 20; 
  • 引用必须引用已经存在的变量,其本身不是真正的变量,不占用内存

注意事项:

  • 引用必须初始化。
  • 引用初始化后就不可更改,因为指针常量的指向不可更改,如:
int a = 1;
int b = 0;
int& ref = a;
ref = b;

这样操作后ref不会成为b的引用,而是把b的值赋给ref。

  • 为引用赋值,实际上是把值赋给与引用绑定的对象。

  • 引用只能绑定在对象上,不能与字面值或某个表达式的计算结果绑定在一起;除了对常量的引用

    const int &r = 100;	//合法
    

引用做函数参数

  • 若想影响传入函数的变量,可使用引用如:
void self_Add(int& a)
{
	a++;
}
int main()
{
	int a = 5;
	self_Add(a);
}

如此操作后a自加1为6。

总结:通过引用参数产生的效果同按地址传递是一样的。引用的语法更清楚简单

引用做函数返回值

  • 局部变量引用不能做返回值

  • 函数调用作为左值:

    int& test02() {
    	static int a = 20;
    	return a;
    }
    int main() {
    	test02() = 1000;	//相当于把100赋给a
    }
    
posted @ 2025-10-13 23:48  单身喵  阅读(1)  评论(0)    收藏  举报