c语言:定义一个整形变量 int a;a的地址(指针)占4个字节,a变量本身占4个字节 。

那是不是说内存为a分配的空间是连续的8个字节。... 那是不是说内存为a分配的空间是连续的8个字节。 展开
 我来答
谢应宸
2013-07-30 · TA获得超过2640个赞
知道大有可为答主
回答量:2731
采纳率:66%
帮助的人:2148万
展开全部
这样理解
int类型的a占用了4个字节的内存空间,假设其占用的空间地址是0x12ff88
也就是说a占用了从0x12ff88上行或者下行4个字节大小
那么如果要表示其地址,则需要增加一个4个字节的变量来存放这个0x12ff88,也就是指针了
更多追问追答
追问
地址也要占用内存的吗?

int* p = (int*)malloc(8);
8字节里包含了地址吗?
追答
理解还有偏差
这样举例子

一个房间假如有10个平方,放进来一个桌子占了一个平方,桌子就好比申请的一个变量,那一个平方就是桌子占用的内存空间,10个平方是横向排列,从0-9,那么桌子的地址就是0

这个时候呢又拿进来一个1平方的写字板,上面记录了这个桌子的地址,也就是0,而这个写字板也占用了1个平方,那么因为第一个平方被桌子占了,所以这个写字板的地址是1,回到c语言中这个写字板就好比一个指针,记录了桌子的地址

所以,int类型的a只占用了4个字节,如果需要记录保存a的地址,则需要再分配4个字节的指针变量来存放其地址
百度网友8a74d6561
2013-07-30 · TA获得超过151个赞
知道答主
回答量:140
采纳率:0%
帮助的人:134万
展开全部
程序只给a分配了4个字节。这4个字节是a变量本身占用的。当你需要把a的地址(指针)保存下来的时候,就会再分配内存空间了,比如:
int* ptr = &a;

上面 ptr是一个指针变量,它占用了4个字节用来保存a的地址。
追问
谢谢!

我想问的是a的地址字节和a变量字节是什么关系,是连续排列的吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友dc74b6c
2013-07-30
知道答主
回答量:4
采纳率:0%
帮助的人:2.9万
展开全部
整形变量a 占得字节数和电脑是多少位的有关,不能笼统的说占四个字节
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式