目录
一、引用定义
二、const与引用的关系
常引用
三、引用的好处
总结
一、引用定义
引用定义:类型 &引用变量名称 = 变量名称,&和类型结合称之为引用符号,不是取地址符,代表别名,引用就是为对象起一个别名。
注意:1.引用不分级,即不存在引用的引用(例:int && x = 10不是引用的引用,是右值引用)
2.没有空引用
3.引用必须初始化
4.系统不会给引用分配空间,它是别名
代码示例:
int main()
{
int a = 10;
int& b = a;
cout << "a= "<< a << endl;
cout << "b= "<< b << endl;
return 0;
}
运行结果:
在引用数组时需要描述数组的两个属性:类型和个数
例:
int ar[5] = {1,2,3,4,5};
int (&br)[5] = ar;
int& cr[5] = ar; //error,数组需要开辟空间,而引用是别名,这种写法产生矛盾
二、const与引用的关系 常引用代码如下(示例):
int main()
{
int a = 10;
int& x = a;
const int& y = a;
//int const& y = a;
//y += 10;//error,不能通过改变y的值来改变a
//若要改变,如下
int c = y;
c += 10;
return 0;
}
int main()
{
int a = 10;
const int b = 20;
const int& rx = a;
const int& ry = b;
//int& ry = b;error 不安全
const int& rz = 100;//可以引用字面常量
//原理:int tmp=100; const int& rz = tmp;
return 0;
}
三、引用的好处
1.引用与指针相比更加安全,指针做为形参使用时,必须对指针进行判空,对空指针解引用程序会崩溃,而引用则不需要判空,没有空引用之说,在调动函数时,必须初始化引用。
代码示例:
void Swap(int& ap, int& bp)
{
int tmp = ap;
ap = bp;
bp = tmp;
}
int main()
{
int x = 10, y = 20;
Swap(x, y);
cout << "x= " << x << "y= " << y << endl;
return 0;
}
2.引用不会浪费空间时间,不会建立副本
例:
引用与指针具体区别请移步这一篇博客:https://blog.csdn.net/weixin_48716357/article/details/124582039
总结
引用是给对象另外起一个名字,不会分配空间,没有引用的引用,也没有空引用,引用必须进行初始化。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)