经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C++ » 查看文章
C++变量引用的概念介绍
来源:jb51  时间:2021/8/4 9:10:33  对本文有异议

本篇介绍的变量引用与之前介绍的指针不是同一概念,它们有本质的区分:

1)不存在空引用。引用必须连接到一块合法的内存。

2)一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。

3)引用必须在创建时被初始化。指针可以在任何时间被初始化。

下面代码介绍其应用场景,供参考

  1. /*
  2. * Author:W;
  3. * 变量引用:是已定义声明的变量的“别名”
  4. * 引用与指针的区别:
  5. * 1)不存在空引用。引用必须连接到一块合法的内存。
  6. * 2)一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。
  7. * 3)引用必须在创建时被初始化。指针可以在任何时间被初始化。
  8. */
  9. //引入头文件:头文件包含了程序中必需的或有用的信息【单行注释】
  10. #include <iostream>
  11. //命名空间使用
  12. using namespace std;
  13. //交换函数声明
  14. void swap(int& a, int& b);
  15. //设置数组特定位置的值
  16. int& setArrValue(int* array, int index);
  17. //main程序执行入口函数
  18. int main()
  19. {
  20. //声明变量
  21. int a = 3;
  22. //声明引用变量
  23. int& b = a;
  24. cout << "=====引用变量=====" << endl;
  25. cout << "a=" << a << endl;
  26. cout << "b=" << b << endl;
  27. cout << "=====引用变量作为函数参数=====" << endl;
  28. int c = 4;
  29. int d = 10;
  30. cout << "交换之前 :c = " << c << " d = " << d << endl;
  31. swap(c, d);
  32. cout << "交换之后 :c = " << c << " d = " << d << endl;
  33. cout << "=====函数返回引用=====" << endl;
  34. //【返回一个引用时,要注意被引用的对象不能超出作用域。所以返回一个对局部变量的引用是不合法的,但是,可以返回一个对静态变量的引用。】
  35. int arr[3] = { 1,4,7 };
  36. cout << "改变前的值" << endl;
  37. for (int i = 0; i < 3; i++)
  38. {
  39. cout << "arr[" << i << "] = " << arr[i] << endl;
  40. }
  41. setArrValue(arr,1) = 5;
  42. cout << "改变后的值" << endl;
  43. for (int i = 0; i < 3; i++)
  44. {
  45. cout << "arr[" << i << "] = " << arr[i] << endl;
  46. }
  47. }
  48. //改变数组特定位置的值
  49. int& setArrValue(int* array,int index)
  50. {
  51. int& ref = array[index];
  52. return ref;
  53. }
  54. /// <summary>
  55. /// 交换函数声明
  56. /// </summary>
  57. /// <param name="a"></param>
  58. /// <param name="b"></param>
  59. void swap(int& a, int& b)
  60. {
  61. int temp;
  62. temp = a; /* 保存地址 a 的值 */
  63. a = b; /* 把 b 赋值给 a */
  64. b = temp; /* 把 a 赋值给 b */
  65. }

运行结果如下:

到此这篇关于C++变量引用的概念介绍的文章就介绍到这了,更多相关C++变量引用内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号