清华大学C课程指针上.pptxVIP

  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文档。上传文档
查看更多
清华大学C课程指针上会计学第1页/共40页 指针是C++语言中的一个重要概念。掌握指针的用法,可使程序简洁、高效、灵活,不难学也不容易学。关键是理解下列故事含义。 故事:很久很久以前,特务阿宝接到上级指令,要去寻找一个密钥。几经周折,线人告之:密钥藏在某墓地的看幕人所住的一栋小楼的房间中。一个风雨交加的夜晚,阿宝潜入了小楼,房间很多,不知该进哪一间,正在一筹莫展之际,忽然走廊上的电话铃声响起。艺高人胆大,阿宝毫不迟疑,抓起听筒,一个陌生人说:“去打开小姐卧室 ,那里有线索”。阿金疾步上楼,打开小姐卧室,用电筒一照,只见桌上赫然6个大字:1000房间。阿宝眼睛一亮,迅速找到1000房间,取出重要数据66(密钥),完成任务。100066小姐卧室(a)1000房间(b)第2页/共40页10.1 指针的概念指针(pointer):是内存中某存储单元的地址(编号)。指针变量:也是内存中的一个变量,只是其值存放的是另一个变量的地址。第3页/共40页10.1 指针的概念引进指针以后,变量的访问(访问是指取出其值或向它赋值)方式有两种:(1)直接访问,通过变量名访问,如通过变量名i直接访问(2)间接访问,通过该变量的指针(地址)来访问,如通过i_pointer访问变量i张强(父亲)张强(儿子)余雨(母亲)第4页/共40页§10.2 指针变量指针变量:存放其他变量地址(指针)的变量指针变量有三个属性:(1)指针变量指向的变量类型。如i_pointer指向的变量i是整型。(2)指针变量在内存中占多少内存单元。如i_pointer占两个内存单元,称为“近指针”,用near表示。如果该变量在内存中占4个内存单元,称为“远指针”,用far表示。如果未指定near或far,缺省是near(3)指针变量指向哪一个变量,即该指针变量的值(地址值)是多少。如i_pointer的值是2000第5页/共40页§10.2 指针变量指针变量定义的一般形式: 基类型 * 标识符其中: “*”表示定义指针变量 “标识符”是指针变量名 “基类型”表示该指针变量所指向的变量类型例、int i,j; /* 定义两个整型变量 */ int *pointer_1, *pointer_2; float *pointer_3; char *pointer_4; 第6页/共40页指针赋值例int a=66;// 定义一个整型变量aint *p,*q; // 定义p,q为指向整型变量的指针变量p=a ;// 将变量a的地址赋给p,这时见图1q = p; // 将p的值赋给q,见图2第7页/共40页指针赋值第8页/共40页§10.2 指针变量指针变量的赋值:方法1:例、pointer_1 = i; pointer_2 = j;注意,指针变量中只能存放地址,不能将一个非地址类型的数据(如常数等)赋给一个指针变量,如:pointer_1 = 100; (错误)方法2:也可以在定义指针变量的同时指定其初值,如、int a; int *p = a;第9页/共40页§10.2 指针变量指针变量的引用有两个运算符可以引用指针变量:(1):取地址运算符。如 pointer_1 = i;(2)*:指针运算符。用于访问指针变量所指向变量如果定义:int i,j; int *pointer_1; pointer_1 = i; 指针变量pointer_1指向变量i,现在,对变量i、j有两种访问方式: (1)直接访问。如 i = 100; j = i。 (2)通过指针变量间接访问。如:*pointer_1 = 100; j = *pointer_1;第10页/共40页§10.2 指针变量说明:定义指针变量时,还未规定它指向哪一个变量,此时不能用*运算符访问指针。只有在程序中用赋值语句具体规定其指向变量后,才能用*运算符访问所指向的变量. int a; int *p; (未规定指向哪个变量) *p = 100; 这种错误称为访问悬挂指针(suspended pointer)第11页/共40页§10.2 指针变量[例1]输入a和b两个整数,按先大后小的顺序输出a和b第12页/共40页§10.2 指针变量第13页/共40页10.3 指针变量作为函数的参数[例2] 输入a和b两整数,按先大后小顺序输出a和b。第14页/共40页第15页/共40页10.3 指针变量作为函数的参数程序执行过程的说明1、执行pointer_1 = a; pointer_2 = b后,pointer_1和pointer_2分别指向a和b.2、调用函数swap(pointer_1,pointer_2),生成两个形参p1和p2。实参pointer_1的值传送给形参p1,因此p1也指向a。同理,p2指向b。10.3 指针变量作为函数的参数第

文档评论(0)

kuailelaifenxian + 关注
官方认证
文档贡献者

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

认证主体太仓市沙溪镇牛文库商务信息咨询服务部
IP属地上海
统一社会信用代码/组织机构代码
92320585MA1WRHUU8N

1亿VIP精品文档

相关文档