- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
引例:交换两变量值的函数 #include stdio.h void swap(int x,int y) { int t; t=x;x=y;y=t; } void main() { int a=2,b=5; if(ab) swap(a,b); printf(a=%d,b=%d\n,a,b); } 第8章 指针 指针的定义、引用 指针作函数参数 数组指针 指向函数的指针 § 8.1 变量、地址与指针概述 地址的概念 § 8.2 指针变量 指针变量的声明 一般形式为: 类型标识符 *变量名; 指针变量的使用 运算符:取变量的地址。 * 运算符:称为指针运算符,或指向运算符,也叫间接运算符,取变量所指向的变量的值。 指针运算 赋值运算:指针本身赋值、指向变量赋值 加减算术运算:指针本身(指针的移动)、指向变量(普通变量计算) 两指针变量进行关系运算:所指变量之间的位置关系 【例8.2】通过指针变量访问整型变量。 #include stdio.h void main() { int a,b,*p1, *p2; a=8;b=6; p1=a;p2=b; printf(%4d%4d\n,a,b); printf(%4d%4d\n,*p1, *p2); } § 8.3 指针与函数 8.3.1 函数参数的传值与传地址 【例8.8】用函数实现求10个学生成绩的最高分、最低分和平均分。 #include stdio.h float fun(int x[],int *p1,int *p2) { int i; float s=0; for(i=0;i10;i++) {s=s+x[i]; if(*p1x[i]) *p1=x[i]; else if(*p2x[i]) *p2=x[i]; } return s/10;} void main() { int i,a[10],max,min; float ave; for(i=0;i10;i++) { scanf(%d,a[i]); printf(%4d,a[i]); } max=min=a[0]; ave=fun(a,max,min); printf(\nave=%6.2f,max=%d,min=%d,ave,max,min); } § 8.4 指针与数组 定义指向一维数组元素的指针变量 通过指针引用数组元素 int a[10]; int *p=a; 【例8.12】用指针实现一维数组的输入与输出。 #include stdio.h void main() { int a[10],i,*p=a; for(i=0;i10;i++) scanf(%d,p+i); for(i=0;i10;i++) printf(%3d,*(p+i)); } 【例8.13】用指针实现冒泡法对10个整数降序排序,其中排序数据随机产生。 #include stdlib.h #include stdio.h #define N 10 void main() { int a[N],i,j,t,*p; for(p=a;pa+N;p++) { *p=random(101); printf(%5d,*p);} for(i=0;iN-1;i++) for(p=a;pa+N-i-1;p++) if(*p*(p+1)) {t=*p; *p=*(p+1); *(p+1)=t;} for(p=a;pa+N;p++) printf(%5d,*p); } 【例8.14】求含有10个元素的一维数组中的所有素数,判断素数用函数完成,并且每次只能判断一个数。 #include stdio.h int fun(int *x) { int i; if(*x2) return 0; for(i=2;i=*x/2;i++) if(*x%i==0) return 0; return 1; } 【例8.15】将含有10个元素的一维数组中的所有元素逆序存放在该数组中,逆序用函数完成。 #include stdio.h void fun(int *x,int n) { int i,t; for(i=0;in/2;i++) {t=*(x+
您可能关注的文档
最近下载
- 中小学校“十五五”发展规划(2025-2029年).pdf VIP
- 新媒体用户研究 PPT第九章 赛博格化:智能时代的人与人机关系.pptx VIP
- 美军作战概念开发的主要特点及启示.pdf VIP
- 2025年5G技术在智能制造领域的应用与发展研究报告.docx VIP
- 《会跳舞的叶子》.ppt VIP
- 八年级二班家长会家长会.ppt VIP
- xx市长宁油品有限公司人才.doc VIP
- CA6140车床拨叉(831006)夹具设计 .pdf VIP
- (高清版)DB13∕T 5274-2020 医疗机构安全生产风险管控与隐患排查治理规范.pdf VIP
- 2024企业岗位安全履责要点清单.pdf VIP
原创力文档


文档评论(0)