指针和引用的区别

目录

一、指针&引用的基本概念

二、引用

1、引用存在的意义(既然有了指针为何还要有引用,引用的由来)

2、引用实现原理

3、const引用

三、指针

四、引用和指针的异同(高频面试题)


一、指针&引用的基本概念

说到指针和引用,首先看下变量名的概念:

变量名: 实质上就是一段连续存储空间的别称。

                变量名是逻辑层的概念, 变量有类型, 例如 整型(int),字符型(char),单精度浮点型(float),双精度浮点型(double)

                地址(可以简单理解成指针)是物理层的感念,每个地址都对应一个存储单元。地址没有类型,但是不同类型的变量占用的地址个数不一样。

                变量名和地址之间的映射关系是由编译器决定的。(摘自https://www.oschina.net/question/1783725_2163287

指针:是一个变量,这个变量存储的是一个地址,指向内存的一个存储单元。

引用: 前面提到 变量名是存储空间的别称,一段存储空间当然可以有多个别称。引用是一个已经定义的变量的别名。

二、引用

1、引用存在的意义(既然有了指针为何还要有引用,引用的由来)

  • 引用作为变量的别名,在很多场合可以代替指针,并且具有更好的可读性和实用性。
  • 另外不需要验证参数的无效性(如空指针等)提高了编码效率。

https://zh-google-styleguide.readthedocs.io/en/latest/google-cpp-styleguide/functions/#id4 google C++编码指出,函数中需要修改的值用指针传入,不需要修改的值用常引用传入,提高代码可读性。

举个栗子: set_age_point 与 set_age_ref同样可以起到修改变量值的作用,set_age_ref与之前的变量名操作完全一样,可读性更好。

例一:

/****************************
 * 理解引用
 */
#include <iostrea
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值