第8章应用指针编制程序.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章应用指针编制程序

第八章 应用指针编制程序 第八章 应用指针编制程序 * 第八章 应用指针编制程序 第一节 概述 第二节 指针变量 第三节 指针与数组 第四节 指针与函数 第五节 指针数组 第六节 指向指针的指针 关于地址: 第一节 概述 变量是以字节为单位存放在内存上的,每一个字节成为一个单元,在内存中每个单元有一个编号(内存是按字节排列的连续空间),这个编号就是地址。 定义变量: int k; 编译系统根据类型为k分配内存。 输入变量的值:scanf(“%d”,k); k就代表了变量k在内存中的地址。 以往对变量的访问是通过变量名,这种操作称为直接访问: int k; scanf(“%d”,k); printf(“%d\n”,k); 注意 (1)不能施加在常数、常量或表达式上 (2)这个地址并不是始终不变的,是由机器和操作系统来安排的,我们无法预先知道。 (3)区分内存单元的地址与内存单元的内容。 C 提供了另一种方式,将变量 k的地址存放在另一个变量处(假定为pk),通过访问 pk,就可以间接地访问变量k,这种方式称为间接访问。 变量 int k; 变量 pk 中存放 k 在内存中的地址。 变量pk 就是一个指针变量,指向变量k,存放k的地址 因此:指针就是地址。 100 int k=100 k k int *pk 谁的地址? 有何特点? main( ) { int a , b , c ; a=5 ; b=10 ; c=a+b; printf(“%d,%d,%d”, a,b,c); } main( ) { int a , b , c, *pc ; a=5 ; b=10 ; pc=c; c=a+b; printf(“%d,%d,%d”, a,b,*pc); } 利用变量 c 的变量名直接访问。 利用指针变量 * pc 间接访问变量c。 指针是定位其他数据类型的特殊类型的数据(存放其他数据的地址)。 指针可以指向所有类型的数据。 指针指向变量--变量的指针(存变量的地址)。 指针指向数组--数组的指针(存数组的起始地址)。 指针指向函数--函数型指针(存放函数的入口地址)。 指针指向指针--指针型指针(存放某指针的地址)。 由指针组成的数组--指针数组。 指向:通过地址来体现,在程序中用“*”符号来表示。 第二节 指针变量 一个指针,指向一个变量 一 、 指针变量的定义 1 格式: 类型 * 标识符 其中: 指针的类型,是指针所指的变量 的类型(基类型) *为指针说明符,说明后面的标识符为指针变量(也叫间接访问符) int a , *pa; pa=a; 将变量a的地址赋给指针pa *pa=a; 通过间接访问符可以访问变量a 2 说明: (1) 一个指针指向同一种类型的变量 (2) * 和 在C中有两个作用: *: 乘号(双目)和指针说明符(单目) : 取址符(单目)和位操作中的“与” 变量的指针:就是变量的地址 指针变量:存放某种变量地址的变量. int k; int *pk ; 当指针 pk 指向变量 k 时,有: pk=k; *pk=k; 所以: *(k) = *pk=k (*pk)=k=pk (3) *与 之间是互逆的 二、 指针变量的初始化 1、 指针变量使用前必须有值 2、 指针变量的初值必须是地址值(不能是整数) 3、 方法有两种: (1) pk =k ; (2) int k ; int *pk = k ;(此句不是赋值语句) 地址:数组名 变量名 4、 可以为指针赋空值(NULL),此时指针不指向任何变量 pk=NULL; 三 、指针变量的引用 对变量k的访问就可以有两种方法: 直接访问:通过变量名--k 间接访问:通过指针--pk int k , *pk; pk=k; printf(“%d”,k); 与 printf(“%d”,*pk);完全等价 *pk=0; 与 k=0; *pk+=1; 与 k+=1; (*pk)++ 与 k++; 区别:定义指针 *pk 引用指针:*pk main( ) { int a,b,c; int *p ; (指针说明) a=100; b=200; p=c; (将c的地址赋给p) *p=a+b; (将a+b的值

文档评论(0)

wuailuo + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档