C++中的引用

引用是什么呢?引用可以看作一个已定义变量的别名,引用说明为对象建立引用名,即别名,引用在定义初始化时与对象名绑定,程序中不能对引用重定义,一个对象的别名,从使用方式和效果上,与使用对象名一致。
引用的语法为:类型 &引用名=对象名,&是引用标识符

如:

	#include <iostream>
	using namespace std;
	void main()
	{
		int a=10;
		int &b=a;//b就是a的别名
	}

引用没有定义,是一种关系型的声明,声明它和原有某一变量(实体)的关系。类型与原类型要保持一致,且不分配内存,声明时必须初始化,一声明就不可以改了,

一个变量可以有拥有多个别名:
		#include <iostream>
		using namespace std;
		void main()
		{
			int a, b;
			int &c=a;
			int &c=b;//错的,不可以更改原有的引用关系
			char &d=b;//错的,他们的类型不一致
			int &f=a;//引用的引用,现在的a有两个别名:c和f
		}
用引用做为函数参数时:
	#include <iostream>
	using namespace std;
	void text(int &x, int &y)
	 {
		int temp = x;
			x = y;
			y = temp;
	}
	void main()
	{
		int a = 1; int b = 2;
		cout << a << "  " << b << endl;
		text(a, b);
		cout << a << "  " << b << endl;
	}

结果时这样的:
在这里插入图片描述
这个说明是什么呢,说明了当引用作为函数参数声明时,修改形参的值就相当于修改了实参的值。
你们觉得普通的引用有自己的空间吗,你们可能觉得引用只是个别名而已,没有自存储空间,其实是有的,引用在C++中的内部实现是一个常指针,所以引用所占的空间大小与指针相同。
type &atype *const name

引用作为函数的返回值时:
		#include <iostream>
		using namespace std;
		int &text()
		{
			int a=10;
		}
		void main()
		{
			int a=0;
			a=text();
		}	

这个呢是将引用赋值给一个变量,会有拷贝的动作,其实编译器类似做了如下的操作:a=*(text())。
以上是我对C++中引用的一些理解。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值