指针是C语言的重要概念和特色使用指针.pptVIP

指针是C语言的重要概念和特色使用指针.ppt

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

9- 9.1* 指针和指针变量的概念 1.内存地址──内存中存储单元的编号。 (1)内存中拥有大量的存储单元(1字节)。为了方便管理,必须为每一个存储单元编号——存储单元的“地址”。 每个存储单元,都有一个惟一的地址。 (2)在地址所标识的存储单元中,存放数据。 类比:住址(宿舍编号)与人。 2.变量地址──系统分配给变量的内存单元的起始地址。 假设有如下程序: …… void main( ) { int num; scanf(%d, num); printf(num=%d\n, num); } 且系统分配给变量num的2个存储单元为 3000 和3001,则起始地址3000就是变量num在内存中的地址。 3.变量值的存取──通过变量在内存中的地址进行 系统存取变量num的方式可以有两种: (2)间接访问──通过另一变量访问num的值 C语言规定:在程序中,可以定义一种特殊的变量(称为指针变量),用来存放其它变量的地址。 假设:定义了1个指针变量num_p,它被分配到4000、4001单元,通过赋值语句“num_p =#”获得num的地址3000,如下图所示: 通过指针变量num_p,存取变量num的过程如下: 首先找到指针变量num_p的地址(4000),取出其值3000(num 的地址); 然后存取num的值(3)。 (3) 两种访问方式的比较 类比:某人甲(系统)找某人乙(变量)办事 ①甲直接去找乙办事(即直接访问)。 ②甲委托丙(指针变量)去找乙办事。 4.指针与指针变量 (1)指针──即地址,变量的地址称为该变量的指针。 (2)指针变量──专门用于存储其它变量地址的变量。 例如,变量num_p是一个指针变量,其值是变量num的地址。 [返回] 9.2* 指针变量的定义与应用 9.2.1 指针变量的定义与相关运算 [案例9.1] 指针变量的定义与相关运算示例。 #include stdio.h #include conio.h void main( ) { int num_int=12, *p_int; float num_f=3.14, *p_f; char num_ch=’p’, *p_ch; p_int = num_int; p_f = num_f; p_ch = num_ch; printf(“num_int=%d, *p_int=%d\n”, num_int, *p_int); printf(“num_f=%4.2f, *p_f=%4.2f\n”, num_f, *p_f); printf(“num_ch=%c, *p_ch=%c\n”, num_ch, *p_ch); getch(); } 程序运行结果: num_int=12, *p_int=12 num_f=3.14, *p_f=3.14 num_ch=p, *p_ch=p 1、指针变量的定义 数据类型 *指针变量[,*指针变量2……]; 例如, [案例9.1]中的语句: int num_int=12, *p_int ; 特别说明:定义而未初始化的指针变量(例如p_int)是悬空的。 使用悬空指针变量,很容易破坏系统,导致系统瘫痪。 2、取地址运算 : &变量名 例如,[案例9.1]中的num_int、num_f、num_ch的结果,分别为对应变量的地址(num_int、num_f、num_ch)。 注意:指针变量只能存放相同数据类型变量的地址。 例如, [案例9.1]中的指针变量p_int、p_f、p_ch,只能接收int型、float型、char型变量的地址,否则出错。 3、指针运算: *指针变量名 *p_int、*p_f、*p_ch ,分别输出各自所指向的变量num_int、num_f、num_ch的值。 [案例9.2] 使用指针变量求解:输入2个整数,按升序(从小到大排序)输出。 #include stdio.h #include conio.h void main() { int num1, num2; int *num1_p=num1, *num2_p=num2, *pointer; printf(“Input the first number: ”); scanf(“%d”, num1_p); printf(“Input the second number: ”); scanf(“%d

文档评论(0)

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

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档