C++中的指针与引用有什么区别

发布时间:2022-02-23 13:39:16 作者:iii
来源:亿速云 阅读:103

这篇文章主要介绍“C++中的指针与引用有什么区别”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++中的指针与引用有什么区别”文章能帮助大家解决问题。

指针在C ++是保存另一个变量的存储器地址的变量。引用是一个已经存在的变量的别名。一旦引用被初始化为一个变量,它就不能被更改为引用另一个变量。因此,引用类似于 const 指针(不要与指向常量值的指针混淆!)。

主要区别

指针

int a = 5;
// some code
int *p = &a;

例子:

int a = 5;
int *p;
p = &a;
int b = 6;
p = &b;

参考

int a = 5;
int &ref = a;

其他差异

内存详情

指针在堆栈上有其自己的内存地址和大小,而引用共享相同的内存地址(与原始变量),但也占用栈堆上的部分空间。

算术运算

可以对指针执行各种算术运算,而没有称为引用算术的东西。(但可以取一个引用指向的对象的地址,然后像在&obj + 6中那样对它进行指针运算)。

指针和引用在什么时候使用

性能完全相同,因为引用在内部实现为指针。但是仍然可以记住一些要点来决定什么时候使用什么:

使用参考:

正如C++ 官方常见问题解答中所说:

可以时使用引用,必要时使用指针。

当你不需要“重置”时,引用通常优先于指针。这通常意味着引用在类的公共接口中最有用。引用通常用在对象的外观上,指针用在内部。


上述的例外情况是,函数的参数或返回值需要一个“sentinel”引用—一个不引用对象的引用。这通常是通过返回/获取指针,并赋予nullptr值这种特殊意义(引用必须始终别名对象,而不是取消引用的null指针)来实现的。


注意:老 C 语言程序员有时不喜欢引用,因为它们提供的引用语义在调用方的代码中并不明确。然而,经过一些C++体验,人们很快意识到这是一种信息隐藏的形式,它是一种资产而不是责任。例如,程序员应该用问题的语言而不是机器的语言编写代码。

关于“C++中的指针与引用有什么区别”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

推荐阅读:
  1. Java引用与C指针有什么区别
  2. c++中的指针和java中的引用有什么区别?

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++

上一篇:C++的STL迭代器怎么自定义

下一篇:SQL如何创建表

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》