C语言sizeof函数和指针变量所占字节数

一个指针变量到底占几个字节?

一些预备知识:

首先看一个c语言自带的函数sizeof:
sizeof(数据类型)
功能:返回值就是该数据类型所占的字节数

例子:
sizeof(int) = 4;
sizeof(char) = 1;
sizeof(double) = 8;
还可以写成sizeof(变量名),返回值是该变量所占的字节数

假设x变量在内存中有8个字节,
我们知道在内存中,内存单元编号(内存地址)
是以字节为单位进行划分的,那么x变量在内存中的8个字节,
每个字节对应一个内存单元编号,8个字节
就有8个内存单元编号,实际上就有8个地址,

在C语言中实际上他是以这8个字节的中的第一个字节对应的内存单元
编号为变量x的内存地址的。
但是这第一个字节对应的内存单元编号是由32个0(或1)构成的
所以存放这32个0(或1)对应的一个编号,按照8位一个字节,需要4个
字节

32个0或1的由来:
CPU和内存条之间有32根地址总线,每根地址总线2种状态,要么0要么1

总结:
一个指针变量不管它是指向整型(还是字符型或双精度型…)变量,指针变量本身只占4个字节。
一个变量的地址使用该变量的首字节的地址来表示。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值