引用(reference)

引用

注意

  • 引用必须初始化,一旦指向了某个变量,就不可以改变指向
#include <iostream>
using namespace std;

int main()
{	
	int age = 10;
	int height = 110;
	int& refAge = age;

	refAge = 11;
	cout << age << endl;
//注意区分,这里不是改变指向
	refAge = height;
	refAge = 111;
	cout << height << endl;
	return 0;
}
  • 引用就是变量的别名(结构体、指针、数组)
#include <iostream>
using namespace std;

int main()
{	
	int a = 10;
	int* p = &a;
	int*& ref = p;
	*ref = 5;
	cout << a << endl;

	int array[] = { 1,2,3 };
	//写法类比数组指针,一个指针指向3位数组
	//看变量是什么,从右往左看,括号优先
	//const 修饰右边的东西
	int(&ref1)[3] = array;
	/*
	另一种写法
	arr可以理解指向不能改的指针
	int arr[] = { 1,2,3 };
	int * const &p = arr;
	cout << p[1] << endl;
	*/

	ref1[0] = 10;
	for (auto empty : ref1) {
		cout << empty << "  ";
	}
	cout << endl;

	return 0;
}

数组名

在这里插入图片描述
arr可以理解指向不能改的指针

本质

  • 引用的本质就是指针,只是编译器弱化了他的功能。弱化指针
#include <iostream>
using namespace std;

struct Student
{
	int& age;
};

int main()
{	
//不能直接sizeof引用,这样就是别名
//visual studio可以选择x86、x64,观察不同的结果
	cout<< sizeof(Student) << endl;	
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值