小工具知识网

当前位置: 首页 > 行业知识 > 初谈C++:引用

行业知识

初谈C++:引用

2026-10-30 22:22:57 来源:互联网转载

文章目录

  • 前言
  • 概述
  • 引用特性
  • 应用场景
    • 做参数
    • 做返回值
    • 传值、传引用效率比较
    • 引���和指针的区别

      前言

      在学习C语言的时候会遇到指针,会有一级指针、二级指针…很容易让人头昏脑胀。在C++里面,引入了引用的概念,会减少对指针的使用。引用相当于给一个变量起了一个别名,比如“高总”指的是小编。

      概述

      引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。

      类型& 引用变量名(对象名) = 引用实体

      #includeusing namespace std;int main(){int a = 10;int& b = a;int& c = a;return 0;}

      调试过程中,发现引用变量的地址和引用实体的地址是相同的,也就是说引用实际上就是给一个变量起了一个别名。

      注意:引用类型必须和引用实体是同种类型的

      引用和C语言中只针的操作其实差不多,我们在反汇编语言中可以看到:

      引用特性

      1. 引用在定义时必须初始化

      int main(){int a = 10;int& ra;   //错误语法return 0;}

      在这段代码中,int& ra没有初始化,编译器会报错

      正确代码:

      int main(){int a = 10;int& ra = a;return 0;}
      1. 一个变量可以有多个引用
      int main(){int a = 10;int& ra = a;int& rra = a;return 0;}

      上述代码中,ra、rra都是对变量a的引用。这是没有问题的,比如小编有不止一个外号。

      1. 引用一旦引用一个实体,再不能引用其他实体
      int main(){int a = 10;int temp = 20;int& ra = a;ra = temp;cout int tmp = a;a = b;b = tmp;}int main(){int x = 0, y = 1;Swap(x, y);cout int sum = a + b;return sum;}int main(){int x = 4;int y = 3;int ans = Add(x, y);cout int c = a + b;return c;}int main(){int& ret = Add(1, 2);Add(3, 4);cout  int a[10000]; };void TestFunc1(A a) {}void TestFunc2(A& a) {}void TestRefAndValue(){A a;// 以值作为函数参数size_t begin1 = clock();for (size_t i = 0; i 

上一篇:C++初阶学习第八弹——探索STL奥秘(三)——深入刨析vector的使用

下一篇:首次下载盒马攻略,轻松开启便捷购物之旅!