C++入门-day03

引言:本节我们讲一下C++中的引用

一、引用 

先看一下下面这段代码: 

 C++入门-day03_第1张图片

在这段代码中。我们命名了两个变量,a_a,其中_a就是a的引用 

所谓引用就是a的“别名”,我们看一下这段代码的运行结果: 

 

发现其地址一样,所以我们去改变a的值也会把_a的值也改变了。 

  • 引用必须在定义时就初始化。
  • 引用自开始定义后,就无法变更引用对象
  • 一个变量可以有多个引用,但是不能引用的引用 。
  • 引用类型需与被引用对象类型保持一致,即:

const int a = 0;

const int& _a = a;

不能:int& _a = a;(因为被引用对象不可改变,引用后也不能改变其值)

但如果:

int a = 0;

const int& _a = a;

这样是可以的,a可以改变,引用后可以改变也可以不改变

引用可以做参数和返回值

C++入门-day03_第2张图片 

 这段代码中将a传入函数,让a+100,并返回a。

可以看到直接改变了a的值。

其实到这里,你可能已经有疑问,这个和之前C中的指针有种说不出的相似。 

 事实上,在编译和cpu视角上,指针和引用是没有区别的,他们都是靠地址来识别的。

在C++中很多学者都不提倡滥用指针。

指针和引用的区别: 

  • 引用在概念上是定义一个变量的“别名“,而指针是存储一个变量的地址
  • 引用在定义时必须初始化,指针没要求。
  • 引用在初始化一个实体后,就不能改变被引用对象,而指针可以。
  • 指针可以NULL(C++11之后推荐使用nullptr)。
  • sizeof(),引用的结果为引用类型的大小,指针为地址的大小(32位是4字节)。
  • 指针可以指针的指针,引用不行。

 

你可能感兴趣的:(C++,c++,开发语言)