1. 什么是“引用”?申明和使用“引用”要注意哪些问题?

答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同。申明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。不能建立数组的引用。

(一)直接看代码

(二)使用符号"&"进行引用,在这里不是取址的意思

2. “引用”与指针的区别是什么?

指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,程序的可读性差;

而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。此外,就是上面提到的对函数传ref和pointer的区别。

 #include <iostream>
using namespace std;
int add(int a){
a = a + ;
return a;
}
int add(int *a){
*a = *a + ;
return *a;
}
int add_ref(int &b){
b = b + ;
return b;
}
int main(int arg,char ** argv){
int a = ;
int &c = a; /*使用符号&来进行引用,引用之后c++就相当于a地址中的数进行a++*/
cout<<add(a)<<endl; /*传入的是参数*/ /*a = 99*/
cout<<"a = "<<a<<endl; /*a = 99*/ cout<<add(&a)<<endl; /*传入的地址*/ /*a = 100*/
cout<<"a = "<<a<<endl; /*a = 100*/ cout<<add_ref(a)<<endl; /*引用*/ /*a = 101*/
cout<<"a = "<<a<<endl; /*a = 101*/ c++; /*a = 102*/
cout<<"a = "<<a<<endl; /*a = 102*/
cout<<"c = "<<c<<endl; /*a = 102*/
return ;
}

main.cpp

最新文章

  1. codeforces 748E Santa Claus and Tangerines
  2. TreeSize工具介绍
  3. HTTPS的七个误解
  4. Linus的redHat在root出现错误:-bash: addgroup: command not found
  5. 结构型—桥接(Bridge)模式
  6. 在SQLite中使用索引优化查询速度
  7. 【Java SE】如何用Java实现直接选择排序
  8. Beta 冲刺(7/7)
  9. react-native webView android使用本地html问题
  10. angularjs的一些问题
  11. Vuex状态管理模式的面试题及答案
  12. python大法好——递归、内置函数、函数进阶
  13. window系统下远程部署Tomcat
  14. 【Javascript Demo】图片瀑布流实现
  15. redis-master/slave模式
  16. python 并发编程(socketserver)
  17. SQL SERVER 2012/ 2014 分页,用 OFFSET,FETCH NEXT改写ROW_NUMBER的用法
  18. Android 处理含有EditText的Activity虚拟键盘
  19. 带领技术小白入门——基于java的微信公众号开发(包括服务器配置、java web项目搭建、tomcat手动发布web项目、微信开发所需的url和token验证)
  20. 2017年12月17日 ASP.NET 12个表单元素&amp;&amp;简单控件/复合控件

热门文章

  1. Error:Could not find method google() for arguments [] on repository container
  2. element-ui 时间设置 获取固定的时间格式
  3. SAS学习笔记23 线性回归、多元回归
  4. asp.net core-2.在vs2017中创建asp.net core应用程序
  5. ABP的UnitOfWork内部SaveChanges无效
  6. Java锁的升级策略 偏向锁 轻量级锁 重量级锁
  7. IIs发布的项目无法打开问题
  8. DataGridView绑定数据、删除数据
  9. CritterAI 翻译 Configuration Parameters
  10. Cascader 级联选择器无法赋值