| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 574 人关注过本帖
标题:疑问迷云
只看楼主 加入收藏
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
结帖率:98.26%
收藏
已结贴  问题点数:20 回复次数:5 
疑问迷云
下面是我个人对计算机内存的理解:

我们在程序里面申请的任何一个变量计算机都会在内存里面为其分配一定的内存空间。
比如:char  ptr;计算机在内存里面会专门的划分出一定的区域用来存放这个char类型
的变量ptr,而我们从键盘上键入的任何一个特定的值都会存储在ptr的地址里面。这就是为什么scanf(“%c”,&ptr)中要用到“&”这个取地址的符号!

但是对于指针变量来说却是另外一回事了!比如:char *ptr[3];在计算机的内存里面会分配一定的空间用来存放ptr[0],ptr[1],ptr[2],这个空间并不是用来存放我们从键盘上键入的特定的值的!虽然指针变量有了存放的地方,但是从键盘上键入的特定的值却没有了存储空间,于是这就需要我们通过动态分配内存的方式来使这些指针变量有一个明确的指向,也就是所谓的指针!我们通过动态分配的空间依我个人的理解应该就是地址吧!
  
当我写完这个的时候在我的头脑里却有了一个这样的疑问:我是否可以这样理解我们从键盘上键入的那些特定的值其实就是存放在地址里面呢?

我不知道我的个人的理解对不对,希望高手能够帮忙解释一下!


谢谢了!

搜索更多相关主题的帖子: 疑问 
2009-10-24 23:33
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:5 
内存,也就是记忆体。是一个连续的存储空间。计算机通过数据总线存取内存中的数据,但计算机如何数据要存到哪呢,那就的通过地址总线,发送地址。



int a;
scanf("%d", &a);   是从键盘读取数据,然后存入a;传递2个参数,第一个参数是字符串"%d",第二个参数是a的地址。


&a 与a的区别是,&a告诉程序变量a存放在内存中的什么位置。函数通过这个位置,把数据存放在变量a中。

&a 不等于a,就像你家的门牌号37号,别人通过这个号码找到你家,但号码本身并不是你的家。地址就是一个号码。

又比如:老师布置作业,让你们把书本的64页上的内容背出。你通过64这个页码,找到64页上的内容,并把这些内容存入了你的大脑。
地址64  -> 读取内存中64地址处的内容 ->  把读出的内容存入其它地方。

[ 本帖最后由 cosdos 于 2009-10-25 00:25 编辑 ]

—>〉Sun〈<—
2009-10-24 23:56
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:5 
回复 楼主 我菜119
图片附件: 游客没有浏览图片的权限,请 登录注册

—>〉Sun〈<—
2009-10-25 00:09
看海的小星
Rank: 2
等 级:论坛游民
帖 子:30
专家分:51
注 册:2009-10-11
收藏
得分:5 
   地址就是一个门牌号。里面的东西才是有用的。
2009-10-25 00:15
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:0 
我问的是我的那个理解是否正确???

愿用余生致力编程
2009-10-25 11:32
jig
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
帖 子:530
专家分:242
注 册:2005-12-27
收藏
得分:5 
LZ应该是对PC机的外设运作原理理解不够。键盘的输入是在一个键盘缓冲中的,我们的键盘硬件+驱动会帮助我们将键盘的输入写入相应的地址空间(这个空间会是比如你自己开辟的 char t)

如果有一天你能试着自己写写简单的虚拟机,你就会彻底明白比如键盘,显示器这些外设,是如何于中心处理单元协同工作的。

个人网站 -  http://.h001.
2009-10-25 12:53
快速回复:疑问迷云
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025180 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved