指针与引用

本文介绍了C++中的指针与引用的基本概念。指针是存储内存地址的变量,用于间接访问对象,而引用是对象的别名,一旦初始化后不可改变。文中讨论了指针类型、指针变量、引用的用法,以及const引用和简化接口的应用,并提供了相关代码示例。
摘要由CSDN通过智能技术生成

指针与引用

指针类型,指针变量,指针。有时候我们把三个都叫做指针于是乎如果对于一个不是很懂指针的人来说,当说到指针时头就很大,因为他很难区分此时说的指针到底是以上那个东西。其实这三个的存在是有顺序的:先有类型,然后才有变量,有了变量然后我们可以往里面存东西。变量的值要存储在内存中,那我们如何取这个值呢?第一种:用变量名;第二种:用内存单元的地址(编号)。

基本概念

  • 类型
    类型决定了数据的意义(应该以何种方式来解读它),以及可以在数据上执行的操作。类型也说明了以这种类型为蓝图创建的对象所占的存储空间的大小。
    在这里插入图片描述

  • 地址
    内存单元的编号,可以看作是门牌号。每8bit称作一个byte,内存单元以字节为单位进行编号。
    在这里插入图片描述

  • 变量(对象)
    变量可以看作是一段连续内存空间的别名。把内存的每一个byte当作是一个一个的小的储物箱,有时若是我们的东西太大了以至于一个储物箱放不下,于是我们就需要使用多个储物箱(一般都是连续的)来存放我们的东西,那么我们这个由几个小储物箱组成的大储物箱的编号应该是什么呢?
    答案是: a d d r = m i n { b o x 1 , b o x 2 , b o x 3.... } addr = min\lbrace box1, box2, box3....\rbrace addr=min{ box1,box2,box3....}就是所用的所有存储物箱的地址(编号)集合中最小的那一个。
    即采用多字节存储的对象,它的地址是他所用地址集合中最小的那个地址。下图中:变量a跨越了地址为:0xFF00-0xFF03的4个存储存储单元。那变量a的地址其实是:0xFF00
    在这里插入图片描述
    我们可以将变量理解为在储物箱上贴了一个标号,方便我们自己使用。比如说,占用了8byte的编号(地址)为:0xFFEE01的储物箱,我们将其称为——Mike。这样显然方便了我们人类使用,但是对于计算机而言,它还是使用编号去寻找我们的储物箱,因为这样更不容易出错也没有歧义。
    上面我们说了跨域多个连续字节的变量的地址问题,那么还有一个问题就是它的值该如何放进去呢?
    在这里插入图片描述
    测试你的硬件所支持的的大端(MSB)还是小端(LSB),一般而言intel桌面级处理器所使用的是LSB(下面给出了测试代码)。对于一台机器采用是MSB还是LSB在两个进行通信的时候一定要协商好,否则通信格式不一致出现意外。

//也可采用union来测试
#include <iostream>
using namespace std;

int main
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值