关于C++中引用和指针的区别详解

 更新时间:2023年07月15日 10:24:17   作者:Pin_na  
这篇文章主要介绍了关于C++中引用和指针的区别详解,

之前我们介绍了什么是引用,错过的小伙伴们可以参考这篇文章!

关于C++中引用的定义与使用详解

既然引用底层是用指针形式实现的,那么这篇文章就来为大家介绍一下引用和指针的区别:

int main()
{
    int a = 10;
    int& ra = a;
    ra = 20;
    int* pa = &a;
    *pa = 20;
    return 0;
}

相同点:

引用和指针在做参数及做返回值类型上几乎效率相同,但远远高于传值

不同点:

1. 引用在定义时必须初始化,指针没有要求

2. 引用只能初始化引用一个实体,而指针可以在任何时候指向任何一个同类型实体

3. 没有NULL引用,但有NULL指针

4. 在sizeof中含义不同:引用结果为引用类型的大小,指针始终是地址空间所占字节个数(32位:4字节 64位:8字节)

5. 引用自加即引用的实体增加1,指针自加即指针向后偏移一个类型的大小

6. 有多级指针,但是没有多级引用

7. 访问实体方式不同,指针需要显式解引用,引用编译器自己处理

8. 引用比指针使用起来简洁、安全

到此这篇关于关于C++中引用和指针的区别详解的文章就介绍到这了,更多相关C++中引用和指针内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C语言实现简单计算器功能(2)

    C语言实现简单计算器功能(2)

    这篇文章主要为大家详细介绍了C语言实现简单计算器功能的第二部分,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • 基于QT实现显示OpenCV读取的图片

    基于QT实现显示OpenCV读取的图片

    OpenCV自带了一部分常用的GUI功能,但是更多的图像处理功能需要其他GUI框架来辅助实现,本文将通过QT来显示OpenCV读取的图片,需要的可以参考一下
    2022-11-11
  • Visual Studio 2022 上使用ffmpeg的详细步骤

    Visual Studio 2022 上使用ffmpeg的详细步骤

    文章介绍了在开发项目中配置FFmpeg库的步骤,添加包含目录、库目录、依赖项及动态库路径,确保编译器和链接器正确识别FFmpeg资源,最后通过测试验证配置有效性,感兴趣的朋友一起看看吧
    2025-07-07
  • C++、Qt分别读写xml文件的方法实例

    C++、Qt分别读写xml文件的方法实例

    Qt提供了QDomElement 类用于完成对xml文件的读取和写入,这篇文章主要给大家介绍了关于C++、Qt分别读写xml文件的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • Qt中moveToThread函数的使用小结

    Qt中moveToThread函数的使用小结

    本文主要介绍了Qt中moveToThread函数的使用小结,用于将对象的事件处理和信号槽调用移动到指定线程执行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2026-01-01
  • vscode远程连接服务器(免密登录+远程开发)

    vscode远程连接服务器(免密登录+远程开发)

    vscode的远程连接功能十分方便,本文就来介绍一下vscode远程连接服务器,主要包括免密登录和远程开发,感兴趣的可以了解一下
    2024-07-07
  • C语言可变参数函数详解

    C语言可变参数函数详解

    在某些情况下我们希望函数的参数个数可以根据需要确定,因此c语言引入可变参数函数。典型的可变参数函数的例子有printf()、scanf()等,下面我就开始讲解
    2021-08-08
  • Cocos2d-x学习笔记之开发环境搭建

    Cocos2d-x学习笔记之开发环境搭建

    这篇文章主要介绍了Cocos2d-x学习笔记之开发环境搭建,本文使用Visual Studio作为开发IDE,是不同于其它教程的,需要的朋友可以参考下
    2014-09-09
  • 使用c++实现OpenCV绘制圆端矩形

    使用c++实现OpenCV绘制圆端矩形

    这篇文章主要介绍了使用c++实现OpenCV绘制圆端矩形,其中着重的讲解了OpenCV使用过程中需要注意的一些小细节,避免浪费大家在开发过程中浪费多余的时间
    2021-08-08
  • C++实现LeetCode(64.最小路径和)

    C++实现LeetCode(64.最小路径和)

    这篇文章主要介绍了C++实现LeetCode(64.最小路径和),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07

最新评论