C语言课程第5篇.ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言课程第5篇

第5章 指针 5.1 指针和指针变量 5.2 指针与数组 5.2.1 指向一维数组的指针变量 5.2.2 指向字符串的指针变量 5.2.2 指向二维数组的指针变量 5.3 指针数组 * * 1. 2. 3. 本章讲述内容: 4. 地址就是指针的概念; 指针变量的说明和初始化 ; 指针变量的使用 ; 指针数组的含义及使用 。 5.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 虽然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语言把内存单元的地址视为一种数据类型,即“指针型”数据。存放指针型数据的变量,称为指针型变量,简称“指针变量”。 5.1.2 指针变量的说明和初始化 . . 说明一个指针变量的格式是: . 关于指针变量说明的几点注意 (1) (2) 变

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档