C++中别名的简单理解

来源:互联网 发布:全民公敌 知乎 编辑:程序博客网 时间:2024/05/22 12:37
#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变量引用cc1.x=10;c1.y=20;cout<<"x="<<c.x<<endl;cout<<"y="<<c.y<<endl;//-------------------------------------------------------------------------------int a=3;int *p=&a;//建立一个指针p另指针p指向aint *&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;} 


原创粉丝点击