栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++中引用的用法

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++中引用的用法

(1)引用的定义

类型&引用变量名=变量名;

在这个式子中,&和类型结合称之为引用符号,不是取地址的符,代表别名的意思。

int main()
{   
 int a = 10;  
 int b = a;  // 变量
 int &c = a; // 引用 // c11 中称为左值引用
 return 0;
}

(2)引用的特点

int main()
{   
 int a = 10;  
 int &x;          // error 定义引用必须初始化    
 int &y = NULL;   // error 没有空引用   
 int &b = a; 
 int &&c = b;     // error //没有引用的引用、所为的二级引用
}

总结:(1)定义引用时必须初始化(2)没有空引用(3)没有所谓的二级引用(即引用的引用)

(3)const引用

int main()
{
int a=20;
const int b=40;
int &x=b;//error;不安全可以通过x改变b的值,但是b为常性不可以更改
const int&x=b;//ok
const int &y=a;//ok
const int &z=10;//ok
//int tmp=10;
//const int &z=tmp;
return 0;
}

(4)引用作为形参代替指针

使用指针交换两个整型值

void my_swap(int*a,int*b)
{
assert(a!=nullptr&&b!=nullptr);
int tmp=*a;
*a=*b;
*b=tmp;
}
int main()
{
int a=3;
int b=5;
cout<<"a="<

使用引用交换两个整型值

void my_swap(int &x,int &y) // 不存在NULL引用, 不需要判空 , 比指针安全
{   
 int tmp = x;  
 x = y;   
 y = tmp;
}
int main()
{    
int a = 10,b = 20;  
cout<<"a = "<

(5)其他形式的引用

int main()
{  
  int a = 10, b= 20;  
  int ar[5]={1,2,3,4,5}; 
  int *p = &a;  
  int *&p1 = p;      //引用指针   
  int &x = ar[0];    
  int (&br)[5] = ar; //引用数组    
   return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/917317.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号