版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include void main() int i , a10; for(i=0 ; i10 ; i+) scanf(%d, &ai); for(i=0 ; i10 ; i+) printf (%4d,ai) ; 如何用指针法对数组元素进行输入和输出?如何用指针法对数组元素进行输入和输出?#includevoid main() int i,*p,a7; p=a; for(i=0;i7;i+) scanf(%d,p+); printf(n); for(i=0;i7;i+,p+) printf(%d,*p);例 注意指针的当前值当前值ppXXXXXXXXXXXXXX0123456apppppp指
2、针变量可以指到数组数组后后的内存单元#includevoid main() int i,*p,a7; p=a; for(i=0;i7;i+) scanf(%d,p+); printf(n); for(i=0;i7;i+,p+) printf(%d,*p);例 注意指针的当前值当前值p=a;p58762730123456ap235n数组数组作函数参数n数组作函数参数,是地址传递地址传递n数组作函数参数,实参与形参的对应关系实实 参参形形 参参数组数组指针变量指针变量数组数组指针变量指针变量数组名数组名数组名数组名指针变量指针变量指针变量指针变量例8.8 将数组a中的n个整数按相反顺序存放 P23
3、9void inv(int *x, int n)int temp,i; for(i=0;in/2;i+) temp=*(x+i); *(x+i)=*(x+n-i-1); *(x+n-i-1)=temp; void main() int i,a10=3,7,9,11,0,6,7,5,4,2; inv(a,10); printf(The array has been reverted:n); for(i=0;i10;i+) printf(%d,ai); printf(n);实参用数组,形参用指针变量37911067542a0a1a2a3a4a5a6a7a8a9xp=x+ma数组6071159472
4、3ijijijjiji例 将数组a中的n个整数按相反顺序存放 void inv(int *x, int n)int temp,i; for(i=0;in/2;i+) temp=*(x+i); *(x+i)=*(x+n-i-1); *(x+n-i-1)=temp; void main() int i,a10,*p=a; for(i=0;i10;i+,p+) scanf(%d,p); p=a; inv(p,10); printf(The array has been reverted:n); for(p=a;pa+10;p+) printf(%d,*p);实参与形参均用实参与形参均用指针变量指针变
5、量例 将数组a中的n个整数按相反顺序存放 void inv(int x, int n) int t,i,j,m=(n-1)/2; for(i=0;i=m;i+) j=n-1-i; t=xi; xi=xj; xj=t; void main() int i,a10,*p=a; for(i=0;i10;i+,p+) scanf(%d,p); p=a; inv(p,10); printf(The array has been reverted:n); for(p=a;pa+10;p+) printf(%d ,*p);实参用实参用指针变量指针变量形参用形参用数组数组n 在定义函数时,可以用二维数组名二维
6、数组名作函数参数 也可以用指向一维数组的指针指向一维数组的指针做函数参数实参实参形参形参数组int x4指针变量int (*q)4数组int x4指针变量int (*q)4数组名a数组名a指针变量p1指针变量p1例如例如 int a34; int (*p1)4=a; int *p2=a0;指针变量指针变量p2p2指针变量指针变量intint * *q q例8.14 3个学生各学4门课,计算总平均分,并输出 P252第n个学生成绩void main() void average(float *p,int n); void search(float (*p)4,int n); float scor
7、e34=65,67,79,60,80,87,90,81,90,99,100,98; average(*score,12); search(score,2);void average(float *p,int n) float *p_end, sum=0,aver; p_end=p+n-1; for(;p=p_end;p+)sum=sum+(*p); aver=sum/n; printf(average=%5.2fn,aver);void search(float (*p)4, int n) int i; printf( No.%d :n,n); for(i=0;i4;i+) printf(%5
8、.2f ,*(*(p+n)+i);列指针行指针函数说明也可以写成:float p46552796080879081909910098pp pni例例8.15 3个学生各学4门课,查找一门以上的课不及格的学生, 并输出其各门课成绩 P234void search(float (*p)4, int n) int i,j,flag; for(j=0;jn;j+) flag=0;for(i=0;i4;i+) if(*(*(p+j)+i)60) flag=1;break;if(flag=1) printf(No.%d is fail,his scores are:n,j+1); for(i=0;i4;i
9、+)printf(%5.1f ,*(*(p+j)+i); printf(n); main() void search(float (*p)4, int n); float score34=.,.,.; search(score,3);6557706058879081909910098p pjin 二维数组二维数组与指向一维数组的指针变量指向一维数组的指针变量之间的关系 例如 int a510 与 int (*p)10;Y二维数组名是一个指向有10个元素的一维数组的指针常量指针常量Yp=a+i 使 p指向二维数组的第i行Y引用二维数组元素元素的方式:*(*(p+i)+j) pij Y二维数组形参形参实际上是一维数组
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨境电商关税代理合同(化妆品类2025年)
- 跨境电商独立站域名备案协议2025年责任版
- 跨境电商2025年跨境电商保税仓物流合作协议
- 口罩生产供应协议2025年样品确认
- 2025年办公楼电梯系统服务协议
- 2025年IT行业兼职工作合同协议
- 铁路面试题及答案
- 汛期安全面试题目及答案
- 护士如何备考面试题目及答案
- 深度解析(2026)《GBT 35205.5-2021越野叉车 安全要求及验证 第5部分:伸缩臂式叉车和集成式人员工作平台的连接装置》
- 招聘及面试技巧培训
- 贵州兴义电力发展有限公司2026年校园招聘考试题库附答案
- 2025年水果连锁门店代理合同协议
- 朱棣课件教学课件
- 农业推广计划课件
- 苏教版四年级数学上册期末考试卷(附答案)
- 血脂分类及临床意义
- 2025年校长述职:把一所学校办成“看得见成长”的地方
- 加油站运营管理实习心得体会
- 太阳能光伏板清洗设备安装施工方案
- 柴油供油合同协议书
评论
0/150
提交评论