指针类型大小分析

这部分对我本人来说经常搞错,这次再复习又有新的体会,在此仅作记录。

int a=10;

int* p=&a;

*p=20;

以上三段代码,第一句可以理解,在内存开辟一段内存,内存名字为a,其地址假设为(0x123445678)第二句,把变量a的地址放到指针变量p中,指针变量类型为int*,第三句,获取指针变量中的地址对应的值并赋值为20(int a=20)

下图中对不同指针类型做了计算,并给出结果。不管是char *  、int *、double*,其结果都是4个字节,计算机为32为系统。指针变量所存地址均为32bit。

地址为什么为32bit呢?

32位,电脑有32跟电线,高电平为1,低电平0,则其所有组合为2*32,每一个编码为一个内存地址,即地址为下面所列。

00000000 00000000 00000000 00000000

...

11111111 11111111 11111111 11111111

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值