【C++基础05】引用的基础

变量名实质上是一段连续存储空间的别名,是一个标号(门牌号)

程序中通过变量来申请并命名内存空间   

通过变量的名字可以使用存储空间

属于c++编译器对c的扩展 不能用c编译器的角度思考引用


void main()
{

	int a = 10;
    //引用的语法:Type&name=var;

	//b就是a  写b就相当于写a
	int&b = a; //int* const b=&a;   指针变量为常量值  意思就是不能再改变指针的指向  但是可以改变指针所指向地址的值

    //相当于把a 改成了100  b就是a a就是b
	b = 100;//*b=100;

	cout << "hello!" << endl;
	system("pause");
	return;
}

普通引用必须初始化

void swap(int a,int b)
{
	int tmp;
	tmp = a;
	a = b;
	b = tmp;
}

//改变指针所指地址上的值
void swap02(int *a, int *b)
{
	int tmp;
	tmp = *a;
	*a =*b;
	*b = tmp;
}

//引用左函数参数的时候 声明不需要初始化  没法初始化
void swap(int &a, int &b)
{
	int tmp;
	tmp = a;
	a = b;
	b = tmp;
}

void main93()
{
	int a = 10;
	int &b = a;
    //int &c; //普通引用必须初始化
	int x = 10, y = 30;
	
	cout << x<<" "<<y<<endl;

	cout << "hello!" << endl;
	system("pause");
	return;
}


复杂数据类型引用做函数参数:

struct Teacher
{
	char name[64];
	int age;
};

void printfT01(Teacher pT)
{
	cout << pT.name<< endl;
	cout << pT.age << endl;
}

void printfT02(Teacher*pT)
{
	cout << pT->name<<endl;
	cout << pT->age << endl;
}

void printfT03(Teacher&pT)
{
	cout << pT.name << endl;
	cout << pT.age << endl;
}

void main()
{
	Teacher t1;
	t1.age = 35;
	t1.name[64] = {'a'};

	printfT01(t1);
	printfT02(&t1); //pT是t1的别名
	printfT03(t1); //pT=t1;
	cout << "hello!" << endl;
	system("pause");
	return;
}


普通引用在声明时必须用其它的变量进行初始化,

引用作为函数参数声明时不进行初始化


引用的意义:






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值