- 1
- 0
- 约1.12万字
- 约 26页
- 2020-02-07 发布于辽宁
- 举报
6.1.1 直接访问和间接访问 . 程序中说明一个变量时,C编译程序就会为其在内存中分配存储单元,以便存放这个变量的取值。变量的类型不同,分配给它的内存空间大小是不同的。 . 当一个变量所需内存字节数大于1时,它就会与好几个字节的地址相关。所谓一个“变量的地址”,就是指其占用存储区中由小到大的第1个字节地址。 例: 理解变量地址与变量类型的关系 #include stdio.h main() { int x; float y; char ch; x = 32; y = 55.068; ch = A; printf (address of x = %u\n, x); printf (address of y = %u\n, y); printf (address of ch = %u\n, ch); } . 程序的运行结果及内存分配示意 32 65492 65493 55.068 65494 65495 65496 65497 65498 65499 x y ch * main() {float x; int y; … } 变量的两个物理意义 2000 2001 2002 2003 2004 2005 … x y 变量的内容 变量的地址 * 虽然65492,65494和95499都是地址,但从这些地址开始应该往下多少字节才能得到所需的数据?这要由变量的类型来决定。在C语言中说变量地址,还隐含有这个变量的类型信息,不能笼统地只把它视为一个地址。 地址起到指向作用,这正是形象地称变量的内存地址是它的“指针”的原因。即地址就是指针,指针就是地址。 . 变量地址的作用 (1) (2) 变量的地址(指针)是一个数值(一个无符号的数值,而不是普通意义的数值),因此可把这个值存放到某个变量里保存。这种用来存放地址的变量,称为“指针变量”。 . . 由于变量的地址(指针)还隐含有这个变量的类型信息,所以不能随意把一个地址存放到任何一个指针变量中去,只能把具有相同类型的变量的地址,存放到这个指针变量里去。即指针变量也应有自己的类型,它与存放在里面的地址所隐含的类型应一致。 . 通常是通过变量名来访问存储单元的。这种由变量名得到其地址,从这个地址直接完成对存储单元访问的方法,称为对内存的“直接访问”。 . 比如,程序中遇到变量y时,就由它得到地址65494。由65494就可以取出它里面的内容或往它的里面存放新内容。 32 65492 55.068 65494 65499 x y ch 65494 65500 ptr A * . 若把变量y的地址放在变量ptr里,那么ptr就是一个指针变量,如图所示。 32 65492 55.068 65494 65499 y 65494 65500 ptr 指针变量 32 65492 55.068 65494 65499 65494 65500 65494 指针变量ptr A A 65500 . 这时,可通过变量ptr取 到变量y的内容55.068。但访 问过程应改为:先从指针变 量ptr得到地址65500。从中 取出里面的内容65494,它 是变量y的地址,而不是y的 内容。然后根据这个地址的 指点(如图中所画的箭头),到65494里拿到y的值55.068。即这时是通过一个地址(65500)得到另一个地址(65494),再由这个地址去访问所需的存储单元。这种对存储单元的访问方法,称为是对内存的“间接访问”。 . 内存间接访问的示意图,也可以有另一种画法,要表达的意思是一样的。只是为了看得更加清楚,就把指针变量ptr提出来画到了外面,用箭头指向65494,以表明它的内容65494是一个指针,指向了变量y。 * 一个语句里可说明相同类型的指针变量,其前都必须冠有指针变量的标识“*”。 变量说明中的“*”号,只起到标识的作用,表示由变量名给出的是一个指针变量, 它不是所说明的指针变量名本身的一个组成部分。 C语言把内存单元的地址视为一种数据类型,即“指针型”数据。存放指针型数据的变量,称为指针型变量,简称“指针变量”。 6.1.2 指针变量的说明和初始化 . . 说明一个指针变量的格式是: . 关于指针变量说明的几点注意 (1) (2) 变量说明中的数据类型,表明指针变量里所存变量地址的类型。比如: int *ptr; 表示ptr是一个指针变量,里面只能存放整型变
您可能关注的文档
最近下载
- (高清版)B-T 6683.3-2023 石油及相关产品 测量方法与结果精密度 第3部分:试验方法已发布精密度数据的监测和验证.pdf VIP
- T∕JSCTS 68-2025 低空起降场(点)布设指南.pdf
- 2025年度贵州社区工作者考试题库(含答案).docx VIP
- 2025年美容师(中级)实操考试真题汇编及解析试卷.docx VIP
- 《JDSU HST-3000 便携式以太网测试仪用户手册 HST 3000 Ethernet UsersGuide CN Final》.pdf VIP
- 初二高斯寒数学8阶能力提高课本+自我巩固+课堂落实(答案).pdf VIP
- GB 50300-2013建筑工程施工质量验收统一标准.pdf VIP
- 高标准农田建设项目应急预案(1).docx VIP
- 七年级下幂的运算试卷.docx VIP
- [全]学生硬笔作品纸-古诗词书法比赛用A4纸打印模板.docx VIP
原创力文档

文档评论(0)