引用和const引用(笔记)

1.引用

#include<iostream>
using namespace std;

//引用不是变量
//引用仅仅是变量的别名
//引用没有自己独立的空间
//引用要与它锁引用的变量共享空间
//对引用所做的改变实际上是对它所引用变量的改变
//引用在定义的时候要进行初始化
//引用已经初始化,不能重新指向其它变量
int main(void)
{
	int val = 100;
//	int& refval;	error C2530: “refval”: 必须初始化引用
	int& refval = val;
	refval = 200;
	cout<<"val="<<val<<endl;	//输出200

	int val2 = 500;
	refval = val2;	//不代表将refval引用至val2这个变量
					//仅仅只是代表将val2赋值给refval
	cout<<"val="<<val<<endl;
}

2.const引用

#include<iostream>

using namespace std;

//const引用是指向const对象的引用
int main(void) 
{
	const int val = 1024;
	const int& refval = val;
//	int& ref2 = val;	//Error,“初始化”: 无法从“const int”转换为“int &”
	
//	refval = 200;		//Error,refval是一个常量
	int val2 = 1024;
	const int& ref3 = val2;	//const 引用指向非const对象

	double val3 = 3.14;
	const int& ref4 = val3;	//会丢失精度 
							//等价于int temp = val3
							//const int& ref4 = temp;
								
	cout<<"ref4="<<ref4<<endl;
	cout<<"val3="<<val3<<endl;

//	int& ref5 = val3;	// error C2440: “初始化”: 无法从“double”转换为“int &”
	return 0;
}

3.引用作为参数传递

#include <iostream>
using namespace std;

//引用作为参数传递
void swap(int& x, int& y)
{
	int temp = x;
	x =y;
	y = temp;
}
int main(void) 
{
	int a = 5;
	int b = 6;
	swap(a, b);		//在函数调用时,引用被初始化x = a, y = b;

	cout<<"a="<<a<<" b="<<b<<endl;
	return 0;
}
4.引用作为函数返回值
#include <iostream>
using namespace std;

//引用作为函数返回值
//注意:不能返回对局部变量的引用
int a[] = {0,1,2,3,4};
int& index(int i)
{
	return a[i];
}
int main(void)
{
	index(3) = 100;	//引用作为函数返回值,使得函数可以放在赋值运算符左边
					//函数返回引用,引用在函数返回的时候初始化
					//index(3)在函数返回的时候被初始化a[3]
	cout<<"a[3]="<<a[3]<<endl;
	return 0;
}




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值