1:C++的引用,引用和指针的区别?1:从汇编指令角度上看,引用和指针没有区别,引用也是通过地址指针的方式访问指向的内存int &b=a ; 是需要将a的内存地址取出并存下来,b=20;(通过引用修改值时,也是先取出指向的地址,然后访问该地址的值并修改它,和通过指针修改值一样)在定义引用的时候,必须初始化,并能够对a取地址 。所以 int &c=20 编译错误的,因为20取不了地址.2:引用只有一级引用没有多级引用,指针有一级指针和多级指针3:定义一个引用变量和定义一个指针变量,其汇编指令是一样的.通过引用变量修改所引用内存的值和通过指针修改所指向内存的值其底层指令也是一样的.4:int array[5]={};int *p=array;cout<<sizeof(array)<<endl; //20cout<<sizeof(p)<<endl;//4
2:怎么定义一个引用变量第1步:先对要引用的变量 取地址即&, &a ,然后定义一个指针来接, 所以就变成了 int *p=&a;第2步: 用&符号取代 * ,所以变成了 int &p=a;
那么又怎么定义一个引用变量来引用一个数组呢?第1步: 对数组名取地址&array,对数组取地址要怎么接能? int (*p)[5]=&array;第2步:用& 取代 * , 所以就变成了int (&p)[5]=array;如果打印 sizeof(p) , 值也是20,就是数组的大小.
3:引用有什么好处?void swap(int a, int b){intc=a;a=b;b=c;}上面的代码是实现不了值交换的,需改为如下方式void swap(int *a ,int
推荐阅读
- 之五 2流高手速成记:Springboot整合Shiro实现安全管理
- Linux软件安装方式 - Tarball&RPM&YUM
- <四>1:全面掌握Const的用法
- 我国哪座山被称为五岳之首?支付宝
- 前端性能优化——首屏时间&&白屏时间
- 「MySQL高级篇」explain分析SQL,索引失效&&常见优化场景
- three.js 如何用webgl搭建一个3D库房,3D仓库3D码头,3D集装箱,车辆定位,叉车定位可视化孪生系统——第十五课
- 碧蓝航线五周年怎么选择
- 弹壳特攻队第五关城市大桥怎么过关
- 弹壳特攻队第五关技能要怎么搭配