C++中别名的简单理解

#include<iostream>
#include<stdlib.h>
using namespace std;
int main()
{
	int a=10;
	int &b=a;//此处为c和c++之间的一个不同的地方,&在C语言当中是取地址符的含义但是在C++当中则是引用的含义 ,即在对b进行操作时,实际上是在对a进行操作,即相当于b是a的一个
//别名,b和a代表的是同一块相同的地址空间
	cout<<"对变量a进行输出操作:a="<<a<<endl;
	b=20;//通过a的别名b来对a所代表的内存空间当中的数据进行修改操作
	cout<<"经过别名修改之后的a="<<a<<endl;
	a=30;
	cout<<"对a进行修改操作之后,同过其别名来对变量a当中的内容进行输出操作:b="<<b<<endl;	 
}
//指针时开辟一块内存空间来存放指定变量的地址,而别名则是直接指向指定变量的,&(b)则是指向变量的地址,所以变量a和别名b将处于等同的地位 

#include<iostream>
using namespace std;
typedef struct
{
	int x;
	int y;
}Coord;
int main()
{
	Coord c;//声明一个结构体变量
	Coord &c1=c;//建立结构体变量c的别名,使得c1变量引用c
	c1.x=10;
	c1.y=20;
	cout<<"x="<<c.x<<endl;
	cout<<"y="<<c.y<<endl;
//-------------------------------------------------------------------------------
	int a=3;
	int *p=&a;//建立一个指针p另指针p指向a
	int *&q=p;//q是一个指针变量,所以要加*,q是指针p的一个别名所以为&q=p,*(&q)则表明当前别名变量时一个指针变量,所以*q与*p二者之间将是等价的 
	cout<<"*p="<<*p<<endl;
	*q=5;
	cout<<"*p="<<*p<<endl; 
 } 

#include<iostream>
using namespace std;
void swap(int &x,int &y);
int main()
{
	int x,y;
	x=10;
	y=20;
	cout<<"交换之前:x="<<x<<",y="<<y<<endl;
	swap(x,y);//此处在进行参数的传递的时候相当于进行了别名的定义操作  &a=x,&b=y,即另a=x然后对a进行引用操作 
	cout<<"交换之后:x="<<x<<",y="<<y<<endl;
}
void swap(int &a,int &b)
{
	int temp;
	temp=a;
	a=b;
	b=temp;
} 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值