Chinaunix首页 | 论坛 | 博客
  • 博客访问: 583905
  • 博文数量: 119
  • 博客积分: 6010
  • 博客等级: 准将
  • 技术积分: 1583
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-15 09:18
文章分类

全部博文(119)

文章存档

2011年(3)

2010年(21)

2009年(44)

2008年(51)

我的朋友

分类: C/C++

2008-08-27 12:31:21

是的精华部分,通过利用,我们能很好地利用内存资源,使其发挥最大的效率。有了技术,我们可以描述复杂的,对字符串的处理可以更灵活,对数组的处理更方便,使程序的书写简洁,高效,清爽。但由于对初学者来说,难于理解和掌RiyLinux联盟
握,需要一定的计算机硬件的知识做基础,这就需要多做多练,多上机动手,才能在实践中尽快掌握,成为C的高手。RiyLinux联盟
过去,我们在编程中定义或说明变量,编译系统就为已定义的变量分配相应的内存单元,也就是说,每个变量在内存会有固定的位置,有具体的地址。由于变量的数据类型不同,它所占的内存单元数也不相同。若我们在程序中做定义为:RiyLinux联盟
int a=1,b=2;RiyLinux联盟
float x=3.4, y = 4 . 5 ;RiyLinux联盟
double m=3.124;RiyLinux联盟
char ch1='a', ch2='b';RiyLinux联盟
RiyLinux联盟
让我们先看一下编译系统是怎样为变量分配内存的。变量a,b是整型变量,在内存各占2个字节;x,y是实型,各占4个字节;m是双精度实型,占8个字节;ch1,ch2是字符型,各占1个字节。由于计算机内存是按字节编址的,设变量的存放从内存2000单元开始存放,则编译系统对变量在内存的安放情况为图6-1所示。RiyLinux联盟
RiyLinux联盟
变量在内存中按照数据类型的不同,占内存的大小也不同,都有具体的内存单元地址,如变量a在内存的地址是2000,占据两个字节后,RiyLinux联盟
变量b的内存地址就为2002,变量m的内存地址为2012等。对内存中变量的访问,过去用scanf("%d%d%f",&a,&b,&x)表示将数据输入变量的地址所指示的内存单元。那么,访问变量,首先应找到其在内存的地址,或者说,一个地址唯一指向一个内存变量,我们称这个地址为RiyLinux联盟
变量的。如果将变量的地址保存在内存的特定区域,用变量来存放这些地址,这样的变量就是变量,通过对所指向变量的访问,也就是一种对变量的“间接访问”。RiyLinux联盟
设一组变量pa、pb、px、py、pm、pch1、pch2,分别指向上述的变量a、b、x、y、m、ch1、ch2,变量也同样被存放在内存,二者的关系如图6-2所示:RiyLinux联盟
RiyLinux联盟
在图6-2中,左部所示的内存存放了变量的值,该值给出的是所指变量的地址,通过该地址,就可以对右部描述的变量进行访问。如变量pa的值为2000,是变量a在内存的地址。因此,pa就指向变量a。变量的地址就是,存放的变量就是变量。 收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站讨论
 
总结:以前总是把指针与指针变量弄混,以为指针变量就是指针,今天看了着篇文章才明白,原来“变量的地址就是,存放的变量就是变量”这两句话惊醒梦中人啊。让大家见效了,呵呵。。。。
阅读(1016) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~