指针、二级指针、指针变量大小

内存分配:一个内存单元为一个字节

 关于指针变量大小的问题:

1、指针变量大小取决于存放地址需要多大空间

2、地址存放空间跟使用的是64位还是32位平台相关,跟编译器也有关系

如下图示例:

首先,此图调试系统为x86,也就是32位系统,地址存放单元为4字节

a变量地址位0x010FFAE8 

&a取的是内存首地址,也就是第一个字节的地址,即0a,0a对应的十进制为10,也对应地址中前三位010

 本机调试x86,暂时不知道为什么对应不上

本机x64

 二级指针:

1、指针变量p存指针变量的地址,类似套娃,其实就是二级指针,可以看到他们的类型是有所不同的。此写法不常用!

注意写法:

1、p是指针变量,int*是变量类型

2、取地址&也就是取num变量的地址

3、  ‘ * ’的作用就是解引用,理解为解开地址,就是内容,所以是对地址处内存空间内容的操作,所以直接改变了num变量值。

 

补充关于指针变量类型大小:

1、此时是32位,因为32位操作系统,是因为CPU所能处理的数据的最大位数是32位。而一个字节刚好是8位,因此是4个字节 

2、64位操作系统同理

3、具体原因可看此文章为什么一个指针在32位系统中占4个字节,在64位系统中占8个字节? - 高晓牛 - 博客园 (cnblogs.com)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值