C++ Primer笔记(2.3.1)—— 引用

C++ Primer笔记(2.3.1)—— 引用

#include<iostream>

/**********************************************************************/
/*  引用(reference)是为对象起的另外一个名字,引用类型引用另外一种类型。  */
/*  通过将声明符写成 &d 的形式来定义引用类型                             */
/**********************************************************************/

int main()
{
	/* ----- 例子 ----- */                                         
	int ival = 1024;													
	int &refVal = ival;  //refVal指向ival(是ival的另一个名字)           /* 一般在初始化变量时,初始化会拷贝到新建的对象中                       */
	//int &refVal2;      //错误:引用必须被初始化                       /* 然而定义引用时,程序把引用和它的初始值绑定在一起,而不是拷贝给引用。 */
																		/* 引用初始化完成后,会和它的初始化对象一直绑定在一起,无法在重新绑定到另外一个对象。 */
	std::cout << "ival  的值为:" << ival << std::endl;                 /* 因此引用必须初始化。 */
	std::cout << "refVal的值为:" << refVal << std::endl;
	std::cout << std::endl;
	/* --------------- */


	/* ----- 引用即别名 ----- */
	//定义一个引用后,对齐进行的所有操作都是在与之绑定的对象上进行的。
	refVal = 2;       //把2赋给了refVal指向的对象,此处即是赋给了ival
	int ii = refVal;  //与ii = ival 一样

	std::cout << "ival  的值为:" << ival << std::endl;              
	std::cout << "refVal的值为:" << refVal << std::endl; 
	std::cout << "ii    的值为:" << ii << std::endl;
	std::cout << std::endl;


	/* 为引用赋值,实际上是把值赋给了与引用绑定的对象。   */
	/* 获取引用的值,实际上是获取了与引用绑定的对象的值。 */

	int &refVal3 = refVal;  //将refVal3绑定到了与refVal绑定的对象上
	int j = refVal;         //i被初始化为ival的值
	std::cout << "refVal3的值为:" << refVal3 << std::endl;
	std::cout << "j      的值为:" << j << std::endl;
	std::cout << std::endl;
	/* ---------------------- */


	/* ----- 引用的定义 ----- */
	//引用本身不是一个对象,所以不能定义引用的引用。
	int i = 1024, i2 = 2048;  //i和i2都是int
	int &r = i,   r2 = i2;    //r是一个引用,与i绑定在一起,r2是int
	int i3 = 1024, &ri = i3;  //i3是int,ri是一个引用,与i3绑定在一起
	int &r3 = i3, &r4 = i2;   //r3和r4都是引用

	double dval = 3.14;
	//int &refVal4 = 10;    //错误:引用类型的初始值必须是一个对象
	//int &refVal5 = dval;  //错误:此处引用类型的初始值必须是int
	/* ---------------------- */


	return 0;
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fire丶Chicken

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值