- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章指针ppt整理
第9章 指针 9.1 指针的概念 9.2 指针变量 9.3 指针与函数 9.4 指针与数组 9.1 概念 1.数据在内存中的存储方式: 按数据类型给在内存为其分配一定数量的存储单元(字节)。 4.变量的“直接访问”方式: 按变量的地址(即变量名)存取变量值的方式。(见下图) 内存用户数据区示意图: 1.算术运算 例如: int *p,i; char *q , c; p=i;q=c; 例如:右图1 pq为假。 再例:由下列图(a)形式, 思考: 1.若已执行了“pointer_1=a”,则: “*pointer_1”的含意是什么? (答:相当于a ) [例]对输入的两个整数按大小顺序输出 main() {int *p1,*p2,*p,a,b; a=5;b=9; p1=a;p2=b; ① ------指向指针变量的指针. 定义形式: 类型 **变量名; 例如: int i,*p,**q; i=30; p=i; q=p; 9.3 指针与函数 指针做函数参数(*) 指针函数 指向函数的指针 swap(int *pa,int *pb) {int p; p=*pa; *pa=*pb; *pb=p; } [例]:交换两数 main() {int a,b; int *p1,*p2; scanf(%d,%d,a,b); p1=a; p2=b; if (ab) swap(p1,p2); printf(\n%d,%d\n,a,b); } main() { int a,b; void swap(int *pa,int *pb); scanf(%d,%d,a,b); if (ab) swap(a,b); printf(\n%d,%d\n,a,b); } main() {int a,b;int *p1,*p2; void swap(int *pa,int *pb); scanf(%d,%d,a,b); p1=a;p2=b; if (ab) swap(p1,p2); printf(\n%d,%d\n,a,b); } 二. 指针函数 1. 一个函数可以带回整型值、实型值、字符 型值,也可以带回指针类型的数据,即地址。 返回值是指针类型的函数,称为指针函数。 3.说明 对于定义: int *a(int x, float y) {……} a是函数名,调用它后能得到一个指向整型数据的指针(地址)。 x,y是函数a的形参。 这个函数前面有一个*,表示此函数是指针类型函数(函数值是指针)。 main() {int a,b,*p; int *max( ); scanf(“%d,%d”,a,b); p=max(a,b); printf(“max=%d”,*p); } 三.指向函数的指针 1.函数名代表函数的入口地址 (如右图) int max(x,y) int x,y; {int z; if (xy) z=x; else z=y; return (z); } 例如: main( ) {int max(); int (*p) ( ); /*定义指针变量*/ int a,b,c; p=max; /*指针变量赋值*/ scanf(%d,%d,a,b); c=(*p)(a,b); /*调用函数*/ printf(a=%d,b=%d,max=%d,a,b,c); } 9.4 指针与数组 指向一维数组的指针 指向多维数组的指针 指向字符串的指针 1.指向数组元素的指针变量的定义方式: 类型 *指针变量名; 例如: int *p; c规定: p=p+1:新p指向数组的下一元素。 p=p+1:意味着新p比原 p的地址值多d个字节(d为一个数组元素所占的字节数)。 (1)通过数组名计算数组元素地址,找出元素的值 main() {int a[10]; int i; for (i=0;i10;i++) scanf(%d,a[i]); main() {int a[10]; int *p,i; for (i=0;i10;i++) scanf(%d, p++); 例如有定义:int a[10],*p; p=a; p++合法;但a++不合法(a是数组名,代表数组首地址,是常数地址。) 要注意指针变量的当前值。 课堂练习1: main() {int a[3],*p=a; a[0]=10;a[1]=20;a[2]=30; printf(“%d\n”,*p++); printf(“%d\n”
您可能关注的文档
最近下载
- 研究院LNG冷能利用.ppt VIP
- [中央]2024年中国记协新闻培训中心招聘 笔试上岸试题历年典型考题及考点剖析附答案详解.docx
- (陶矜老师课件)股权设计与合伙人激励.pdf VIP
- if与unless专项练习.doc VIP
- 2023年北京市高考化学试卷(解析版).pdf VIP
- 有限空间作业安全管理监理实施细则(新).pdf VIP
- 直播电商与案例分析第10章 农产品直播解析.ppt VIP
- 2023款 R18 B 宝马摩托车 中文 用户保养手册 使用说明书.pdf VIP
- 2022年国家公务员考试《公安专业科目》题(网友回忆版).docx VIP
- USCAR38 超声波焊接技术标准和要求(中文版).pdf VIP
文档评论(0)