引用 :
1.变量名实质上就是一段连续存储空间的别名,通过变量名来申请并命名内存空间,
通过变量的名字可以使用存储空间;
而引用也可以看做又给存储空间存储空间起了一名字,好比一个人有两个名字一样,
无论喊哪一个,都是指一个人;
2.引用语法 “数据类型”+“&”=被引用变量
3. 引用的规则
3.1引用没有定义,是一种关系型声明。声明它和原有某一变量(实体)的关
系。故 而类型与原类型保持一致,且不分配内存。与被引用的变量有相同的地址。
3.2 声明的时候必须初始化,一经声明,不可变更。
3.3 可对引用,再次引用。多次引用的结果,是某一变量具有多个别名。
3.4 &符号前有数据类型时,是引用。其它皆为取地址。
#include <iostream>
using namespace std;
int main ()
{
int a=1,b=2;
int &r=a;
int &r=b; //错误,不可更改原有的引⽤用关系
int &ra=r; //可对引⽤用更次引⽤用,表⽰示 a 变量有两个别名,分别是 r 和 ra
float &rr=a;//错误,引⽤用类型不匹配
cout <<"a的地址"<<&a<<endl;
cout <<"r的地址"<<&r<<endl;
cout <<"ra的地址"<<&ra //变量与引⽤用具有相同的地址。
}
4.引用作为函数参数
4.1 普通引用在声明时必须用其它的变量进行初始化,引用作为函数参数声明时不进行初始化
4.2 引用作为其它变量的别名而存在,因此在一些场合可以代替指针
引用相对于指针来说具有更好的可读性和实用性 ,c++中引入引用后,可以用引用解决的问题。避免用指针来解决。
例题 交换数值
#include<iostream>
{
int e;
e=c;
c=d;
d=e;
}
int main ()
{
int a=1,b=2;
swaps(a,b);
cout << "a="<<a<<endl;
cout << "b="<<b<<endl;
return 0;
}
1.变量名实质上就是一段连续存储空间的别名,通过变量名来申请并命名内存空间,
通过变量的名字可以使用存储空间;
而引用也可以看做又给存储空间存储空间起了一名字,好比一个人有两个名字一样,
无论喊哪一个,都是指一个人;
2.引用语法 “数据类型”+“&”=被引用变量
3. 引用的规则
3.1引用没有定义,是一种关系型声明。声明它和原有某一变量(实体)的关
系。故 而类型与原类型保持一致,且不分配内存。与被引用的变量有相同的地址。
3.2 声明的时候必须初始化,一经声明,不可变更。
3.3 可对引用,再次引用。多次引用的结果,是某一变量具有多个别名。
3.4 &符号前有数据类型时,是引用。其它皆为取地址。
#include <iostream>
using namespace std;
int main ()
{
int a=1,b=2;
int &r=a;
int &r=b; //错误,不可更改原有的引⽤用关系
int &ra=r; //可对引⽤用更次引⽤用,表⽰示 a 变量有两个别名,分别是 r 和 ra
float &rr=a;//错误,引⽤用类型不匹配
cout <<"a的地址"<<&a<<endl;
cout <<"r的地址"<<&r<<endl;
cout <<"ra的地址"<<&ra //变量与引⽤用具有相同的地址。
}
4.引用作为函数参数
4.1 普通引用在声明时必须用其它的变量进行初始化,引用作为函数参数声明时不进行初始化
4.2 引用作为其它变量的别名而存在,因此在一些场合可以代替指针
引用相对于指针来说具有更好的可读性和实用性 ,c++中引入引用后,可以用引用解决的问题。避免用指针来解决。
例题 交换数值
#include<iostream>
using namespace std;
{
int e;
e=c;
c=d;
d=e;
}
int main ()
{
int a=1,b=2;
swaps(a,b);
cout << "a="<<a<<endl;
cout << "b="<<b<<endl;
return 0;
}