C语言 内存和地址 之间的问题

不明白了这是一个int型变量x上面那个是一个地址只保存0x03下面那个地址就把所有的都保存了... 不明白了 这是一个int型 变量x 上面那个是一个地址 只保存 0x03 下面那个地址 就把所有的都保存了 展开
 我来答
terender
2015-05-21 · TA获得超过243个赞
知道小有建树答主
回答量:68
采纳率:0%
帮助的人:77.9万
展开全部
int型变量是4个字节,在内存中的结构就是 0x03 0x00 0x00 0x00, 注意低字节在前高字节在后。
下面那个是int* 也就是指向int的指针,它因为知道自己是指向int型的指针,所以取值时就会读取四个字节的值
更多追问追答
追问
int 是四个字节 所以说 他就需要 4个地址 是吗?  而如果使用了 指针的话  仅仅使用了 一个地址 就将 int里面的 数取了出来 这样的话 会节省内存空间 是这样吗?
追答
不是的。
内存的最小单位是字节,内存的每个字节都对应了地址空间里的一个地址,如果是32位系统就是从
0x00000000 - 0xFFFFFFFF;
指针变量也是一个变量,只不过它里面存的是内存的地址,确切的说,是内存的首地址。
不管是int变量也好,或者其他的数据类型也罢,在内存里存放都是需要若干个字节的连续内存空间的,注意这里是“连续”。当使用一个指针指向这个变量的时候,那个指针的值就是这个连续内存的首地址,就好像门牌号一样,所以并没有省掉任何空间。
使用指针取值操作读取变量的值的时候,就是根据指针里存放的地址,找到对应的内存,然后再根据数据的长度,按规则读取相应长度的内存中的数据。

指针本身的存放也是需要使用内存的,只不过跟这个int变量没有任何关系了,是存放在另一个内存空间里,那个内存空间就是指针变量的存放空间。指针变量的大小是固定的,32位系统指针变量是4个字节,64位系统是8个字节。
我能艹吗
2015-05-21
知道答主
回答量:11
采纳率:0%
帮助的人:11.5万
展开全部
因为int是4个字节的,只要首地址,就能表示他的值
追问
int四字节 我知道 但是 int 4个字节 就需要四个地址吗?  那下面箭头那个首地址 后面又是代表什么?
追答
对的,每个地址对应一字节的存储单元,地址是连续的,首地址的后一位就是首地址+1的存储单元.并且是按十六进制表示
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
木有想到GK5ym
2015-05-21 · TA获得超过208个赞
知道小有建树答主
回答量:207
采纳率:90%
帮助的人:126万
展开全部
字节(Byte /bait/ n. [C])是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符。其中一个字节占一个地址单元。

int四字节,所以占了4个连续地址单元,其中第一个地址为首地址做为该变量的地址。另外内存地址是第低到高,但数据读取是从高到低,如上数据其实是0x00000003。

小伙子,看了你其他的回答,我只能说你太纠结了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式