- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章指针第一节指向变量的指针第二章指向一维数组的指针第三节
第五章 指针第一节 指向变量的指针第二章指向一维数组的指针第三节指向字符串的指针第五节返回指针值的函数 5.2程序二 #include stdio.h main( ) { int a,b,m,*p, *p1,*p2; p1=a; p2=b scanf(“%d,%d”,p1,p2); printf(“%d,%d\n”,a,b); p=p1;p1=p2;p2=p; printf(“%d,%d\n”,a,b); printf(“%d,%d\n”,*p1,*p2);} 例5.3下面是将a.b.c三个数由小到大排序的程序。 main() {void g1(inyt *px,int *py); int a,b,c,*pa=a,*pb=b,*pc=c; scanf(“%d,%d,%d”,pa,pb,pc); if(ab) g1(a,b); If(bc) g1(b,c); If(ab) g1(a,b); printf(“%d,%d,%d\n”,a,b,c); } 能否编写不用指针的函数来完成呢? P98页程序 结论:1)不能用普通变量作参数,值带不回来 2)指针变量作参数,值能带回来 例5.4分析程序 void add(int x,int y,int *z) {*z=x+y;; return; } main() {int a,b,c; scanf(“%d,%d”,a,b); add(a,b,c); printf(“a+b=%d\n”,c); } 例5.5分析程序 * 第一节 指向变量的指针 储备知识1——指针的特点 1、可有效地表示数据结构; 2、能够动态地分配内存; 3、能方便地使用字符串和数组; 4、在调用函数时能够得到多于1个值; 5、能直接处理内存地址等。 储备知识2——数据的存取过程 变量是以字节为单位存放在内存上的,每一个字节成为一个单元。 例如: int a; float b; char c; . . . . . . 经过编译,将变量名转换为变量的地址,对变量值的存取是通过地址进行的。 每个字节的编号 a b c 2000 2001 3000 3001 3002 3003 4000 储备知识2——数据的存取过程 例如: int a,b,c; scanf(“%d,%d”,a,b); c=a+b; a b c 2000 2002 2004 地址 直接访问 变量名 2 5 7 C 提供了另一种方式,将变量 k的地址存放在另一个变量处(假定为pk),通过访问 pk,就可以间接地访问变量k,这种方式称为间接访问。 变量 int k; 变量 pk 中存放 k 在内存中的地址。 变量pk 就是一个指针变量,指向变量k,存放k的地址 因此:指针就是地址。 100 int k=100 k k int *pk 谁的地址? 有何特点? * 3、间接访问:多次直接访问方式; 一、指针概念 1、地址:内存单元的字节编号。 2、直接访问:按变量地址存取变量值的方式; a . . . 1 2 . . . 2000 b a_pointer 2000 2002 3000 a_pointer=a; 6、指针变量的值:指针变量中存放的值; 4、指针:一个变量的地址称为该变量的指针; 5、指针变量:专门存放另一个变量地址的变量; 二、指针变量的定义 指针变量定义的一般格式: 数据类型 *指针变量名; 功能: 定义指向给定“数据类型”的变量或数组的指针变量,允许一次定义多个指针变量。 如:int *p; float *p1,*p2,I,a[5]; char *p3; 三、 指针变量的赋值 1、定义指针变量的同时给指针变量赋初值 int x,*p=x; 2、先定义指针变量,然后赋值。 int x,*p; p=x; 注意(1)同类指针可以相互赋值 int x,*p1,*p2; p1=x; p2=p1; (2)不同类指针不可以相互赋值 (3)一个指针只能指向同一类型的变量。 变量必须与说明过的类型应一致 练习1 int i; int *p=i; 练习3 int i=1; int *p=i; int *q=p; 练习2 int *p=i; i
您可能关注的文档
最近下载
- 水泥厂余热锅炉调试报告.pdf VIP
- 2024-2025年中国铁氧体软磁材料行业市场调查研究及投资前景预测报告.docx
- 2025秋统编版(2024)小学道德与法治三年级上册(全册)课时练习及答案(附目录).docx
- 我眼中的中国平安.docx VIP
- 公路工程沥青新旧试验规程差异对比解读-JTG 3410-2025.pdf VIP
- 《气体传感器简介》课件.pptx VIP
- 自治区矿产资源开发利用与生态保护修复方案编制提纲(试行).doc VIP
- 粘贴钢板加固施工方案.docx VIP
- 碳排放权交易有关会计处理暂行规定(2025).docx VIP
- Fisher阀门结构与维护.ppt VIP
文档评论(0)