颍上人才网
颍上职场资讯
颍上面试技巧
正文:详细讲解引用与指针的区别,阅读后定有收获
详细讲解引用与指针的区别,阅读后定有收获
来源:网络整理2025-03-30

这篇文章会详细地为大家讲解 C++指针与引用的区别。小编认为这很实用,所以把它分享给大家作为参考,希望大家读完这篇文章后能够有所收获。

1、引用与指针的区别

指针的原理和引用的原理非常相似。因此,在很多时候,尤其是在面试的时候,它们经常会被拿来进行比较。

本文来梳理一下引用和指针的一些异同。

1.1 相同点

两者都是关于地址的概念。

指针是一个变量,它存储着一块内存地址。引用是某一个内存的别名。我们能够使用指针或引用来修改对应内存的值。

1.2 区别

我们不能先声明一个变量引用,然后再给它赋值。我们只能在声明变量的时候同时进行初始化。

int?a?=?3;
int?&b;??//?非法
int?&c?=?a;?//?合法

而指针没有这个限制:

int?*p;?//?合法

引用一旦被声明就无法更改,然而指针是可以更改的。在某种程度上,引用与常量指针有相似之处。

int?a?=?3;
int?&b?=?a;
int?const?*p?=?&a;

指针的引用是什么意思_面试指针和引用的区别_指针和引用的使用场景

这是两者在使用上的一个巨大区别。我们拿到一个引用时,可以放心地使用,因为它肯定不会为空。然而,指针却不是这样,它有可能是为空指针,必须要经过判断之后才能使用。

sizeof 函数能够计算变量内存块的大小。然而,当我们对指针使用 sizeof 时,得到的是指针这个变量自身所占用的内存大小,并非指针指向的变量的内存大小。而引用不存在这样的问题。

我们先来看引用的指针:

int?a?=?3;
int?&b?=?a;
int?*p?=?&b;

这段代码不会报错。然而,若我们真的去运行它,就会发现 p 只是一个普通的 int 型指针,它所指向的是变量 a。因为 b 是一个引用,其地址与 a 相同。所以,当我们定义一个指向 b 的指针时,实际上就是在定义指向 a 的指针。这就是指向引用的指针不存在的原因。

再来看看指针的引用。指针的引用是存在的,并且很容易理解。其本质上就是指针的一个别名。

int?a?=?3;
int?*p?=?&a;
int?*&pt?=?p;

pt 能够指向其他变量,并且能够修改解引用的值,在使用方面它与 p 不存在任何差别。

除了上述内容,指针和引用在一些细微方面存在差别。比如自增和自减的含义不一样,指针的自增自减意味着指针的移动,然而引用的自增自减则是变量的值发生改变。

这篇关于“C++指针与引用有什么区别”的文章分享到此结束啦。希望上述内容能对大家有所帮助,让大家能学到更多知识。如果觉得文章不错,就把它分享出去,让更多人看到吧。

温馨提示:本内容地址http://m.ysjob.cc/article/articledetail-266226.html转载请注明,以上详细讲解引用与指针的区别,阅读后定有收获资讯信息来自颍上人才网(颍上地区最大的颍上人才网颍上人才网

 
 ©2003-2018 颍上人才网  
客服电话:  QQ: