C++:引用的简单理解

一、什么是引用

引用,顾名思义是某一个变量或对象的别名,对引用的操作与对其所绑定的变量或对象的操作完全等价

语法:类型 &引用名=目标变量名;

C++ 引用 vs 指针

引用很容易与指针混淆,它们之间有三个主要的不同:

  • 不存在空引用。引用必须连接到一块合法的内存。
  • 一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。
  • 引用必须在创建时被初始化。指针可以在任何时间被初始化。

创建引用

#include <iostream>
 
using namespace std;
 
int main ()
{
   // 声明简单的变量
   int    i;
   double d;
 
   // 声明引用变量
   int&    r = i;  //可以读作:r 是一个初始化为 i 的 int 型引用
   double& s = d;  //可以读作:s 是一个初始化为 d 的 double 型引用
   
   i = 5;
   cout << "Value of i : " << i << endl;
   cout << "Value of i reference : " << r  << endl;
 
   d = 11.7;
   cout << "Value of d : " << d << endl;
   cout << "Value of d reference : " << s  << endl;
   
   return 0;
}

上面代码编译执行后得到的结果:

Value of i : 5
Value of i reference : 5
Value of d : 11.7
Value of d reference : 11.7

C++引用几个需要注意的点

1.引用必须在声明时将其初始化,不能先声明后赋值

int main()
{
  int rats = 10;
  
  //声明引用,旦未初始化
  int &rodents;

  rodents = rats;

  return 0;
}

上述代码编译时会报以下错误:

error: ‘rodents’ declared as reference but not initialized

2.引用更接近const指针,必须在创建时进行初始化,一旦引用和某个变量关联起来,该引用就会一直指向该变量。

C++引用的应用

  • 把引用作为参数
    ( C++提供了 传递变量的引用。形参是引用变量,和实参是一个变量,调用函数时,形参(引用变量)指向实参变量单元。这种通过形参引用可以改变实参的值。)

两个printf的结果都是10。

总结:
B 引用 A:相当于 B 借用了 A 的内存地址和值,A 和 B 任意一个发生改变的话 AB 同时改变。

指针 B 指向 A:B 借用了 A 的值,但是B的内存地址重新分配,不同于 A。

posted @ 2021-08-02 16:47  日月既往、不复可追。  阅读(224)  评论(0编辑  收藏  举报
Fork me on GitHub /*音乐*/ 1 2 3
4