c语言地址到底是一个段还是一个点?比如int a,a的地址为0x1,这个1到底是什么?是表示内存里面地址的一个

是表示内存里面地址的一个点吗?还是我们人为的一种标记?有什么含义?哎,头疼,想不明白。哪位大神能给我细说下。感激不尽。到底地址是什么?... 是表示内存里面地址的一个点吗?还是我们人为的一种标记?有什么含义?哎,头疼,想不明白。哪位大神能给我细说下。感激不尽。到底地址是什么? 展开
 我来答
金色潜鸟
2013-02-19 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5709万
展开全部
c语言地址是一个点,或叫“偏移量”(offset) 。程序里,每个变量都有不同的偏移量。

操作系统把程序装入内存时,临时分配一个区域,内存里面的真地址等于 临时分配的值+“偏移量”。

程序运行时,到真地址里去读写数据(取数,存数)。数据在运算器和寄存器里加工。
地址相当于门牌号码,便于寻找数据。
空雪梦见
2013-02-18 · TA获得超过5598个赞
知道大有可为答主
回答量:2522
采纳率:75%
帮助的人:1203万
展开全部
C语言里的地址表示一个点,一个点外加一个变量类型可以代表一块内存:从这个点开始,长度等同于这个变量类型的长度比如int是4个字节。

说简单点,比如你电脑里装了2个G的内存,这2个G的单位是字节(2GB),于是就给每个字节分配一个地址,第一个字节为0,最后一个字节为0x7FFFFFFF,中间怎么排自己脑内补完。

不过现代操作系统中地址没有那么简单,在windows下其实我上面说的那个是错(简化?)的。它有好几个概念的地址,之间互相转化,什么什么的,以后学了操作系统相关的知识以后会知道。初学者不用知道这么复杂,知道像我刚才说的那样的应该就够了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yang_bigarm
2013-02-18 · TA获得超过3949个赞
知道大有可为答主
回答量:1664
采纳率:100%
帮助的人:622万
展开全部
地址就是你家的门牌号,你们家的那条街比较长,就用4位数来表示,街比较短,就用2位数来表示。

所以你是32位的系统,0x1就是31个0,一个1。64位的系统,就是63个0,一个1。你学一门编程语言,就要有一定的思维方式,站在一定的抽象角度去学,等上手了,再关心底层的实现。

这些都是设计计算机的时候那些设计者的抽象,实际上根本没有地址这个东西,就是一些电路里的信号,高电平低电压什么的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
夏侯南溪
2013-02-18 · TA获得超过222个赞
知道小有建树答主
回答量:141
采纳率:0%
帮助的人:99.4万
展开全部
我个人觉得是一个点 就像我们住的楼房的门牌号 内存被分成许多许多许多的小房间 每个小房间都有自己的门牌号 小房间可以认为是 字节 (不知道准不准确) 可以组合成大房间 比如 int类型 在某些 编译器中 是 4字节(例如 VC6.0 和 CodeBlocks-G++) 这个大房子的是由四个连续的小房子连起来的 于是 编译器规定(这也是我猜的) 把大房子的门牌号 定为 组成它的第一个小房子的门牌号
呵呵 楼主 我这是形象的描述哈~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式