基于指针pointers和引用references的区别分析

 更新时间:2013年05月03日 10:48:48   作者:  
本篇文章介绍了,基于指针pointers和引用references的区别分析。需要的朋友参考下

指针用“*”和“->”操作符,引用用"."操作符,当然这是表面的区别。

    1、引用必须代表一个对象,没有所谓的空引用。指针可以为NULL。即引用必须有初值,指针不然。所以在使用pointers之前,必须测试它是否为null。references不需要测试。

    2、pointers可以被重新赋值,指向另一个对象,reference总是指向(代表)它最初获得的那个对象:

复制代码 代码如下:

string s1("Nancy");
string s2("Clancy");

string &rs = s1;      //rs指向s1.
string *ps = &s1;  //ps指向s1.
rs = s2;                 //rs仍然代表s1,
                             //但是s1的值变成了“Clancy”


ps = &s2;             //ps现在指向s1,
                            //s1没有变化


    3、还有一些情况需要使用references。例如实现某些操作符的时候。最常见的例子是operator[]。这个操作符很特别的必须返回某种“能够被当做assignment赋值对象”的东西。

    4、结论:当你知道你需要指向某个东西,而且绝不会改变指向其他东西,或是你实现一个操作符而其语法需求无法由pointers达成,你应该选择references。任何其他时候,请采用pointers。

相关文章

  • Java中OkHttp 超时设置的实现

    Java中OkHttp 超时设置的实现

    超时设置是网络编程中不可忽视的一部分,本文就来介绍一下Java中OkHttp 超时设置的实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-06-06
  • Spring security 自定义过滤器实现Json参数传递并兼容表单参数(实例代码)

    Spring security 自定义过滤器实现Json参数传递并兼容表单参数(实例代码)

    这篇文章主要介绍了Spring security 自定义过滤器实现Json参数传递并兼容表单参数,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Mybatis查询时,区分大小写操作

    Mybatis查询时,区分大小写操作

    这篇文章主要介绍了Mybatis查询时,区分大小写操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • 关于MyBatis plus条件构造器的逐条详解

    关于MyBatis plus条件构造器的逐条详解

    什么是条件构造器呢?简单来说,条件构造器就是用来生成我们查数据库的sql。它可以简化sql代码的编写,灵活、方便且易于维护
    2021-09-09
  • Java hibernate延迟加载get和load的区别

    Java hibernate延迟加载get和load的区别

    这篇文章主要介绍了Java hibernate延迟加载get和load的区别,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • spring-boot-maven-plugin 配置有啥用

    spring-boot-maven-plugin 配置有啥用

    这篇文章主要介绍了spring-boot-maven-plugin 配置是干啥的,这个是SpringBoot的Maven插件,主要用来打包的,通常打包成jar或者war文件,本文通过示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • 关于idea的gitignore文件编写及解决ignore文件不生效问题

    关于idea的gitignore文件编写及解决ignore文件不生效问题

    这篇文章主要介绍了idea的gitignore文件编写及解决ignore文件不生效问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Java之字符串转换成Java对象方式

    Java之字符串转换成Java对象方式

    这篇文章主要介绍了Java之字符串转换成Java对象方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Maven访问仓库顺序代码实例解析

    Maven访问仓库顺序代码实例解析

    这篇文章主要介绍了Maven访问仓库顺序实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • 常见的排序算法,一篇就够了

    常见的排序算法,一篇就够了

    这篇文章主要介绍了一些常用排序算法整理,插入排序算法、直接插入排序、希尔排序、选择排序、冒泡排序等排序,需要的朋友可以参考下
    2021-07-07

最新评论