引用就是指变量的一个别名(不能只有别名) 引用必须初始化。
int a=3;
int &b=a;//(为a起个别名b,也是将别名b初始化为a)
b=10;//(对别名做任何操作都是对其本身做操作)
结构体类型的相关引用
struct Coor{
int x,y;
}
Coor c1;
Coor &c=c1;
c.x=10;
c.y=20;
指针类型的引用:类型*&指针引用名=指针;
int a=10;
int *p=&a;
int *&q=p;
*q=20;//(则a的值为20)
引用做函数参数
void fun(int &a,int &b)
{
}
fun(x,y)将x,y分别起别名,接下来在函数体中直接用别名来操作
#include<iostream>
#include<stdlib.h>
using namespace std;
typedef struct
{
int x;
int y;
}coord;
int fun(int &a,int &b)
{
int c=0;
c=a;
a=b;
b=c;
}
int main()
{
cout<<"变量的引用:"<<endl;
int a=10;
int &b=a;
b=20;
cout<<a<<endl;
a=30;
cout<<b<<endl;
cout<<"结构体的引用:"<<endl;
coord c;
coord &c1=c;
c1.x=1;
c1.y=2;
cout<<c.x<<","<<c.y<<endl;
cout<<"指针的引用:"<<endl;
int d=4;
int *p=&d;
int *&q=p;
*q=5;
cout<<d<<endl;
cout<<"引用做函数参数:"<<endl;
int e=7;
int f=8;
cout<<e<<","<<f<<endl;
fun(e,f);
cout<<e<<","<<f<<endl;
return 0;
}
变量的引用:
20
30
结构体的引用:
1,2
指针的引用:
5
引用做函数参数:
7,8
8,7