- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
for(i=0;i5;i++) printf(*(a +%d)=%d ,i,*(a+i)); /*通过数组名a输出数组元素*/ printf(\n); for(i=0;i5;i++) printf(*(p+%d)=%d ,i,*(p+i)); /*通过指针变量p输出数组元素*/ printf(\n); for(i=0;i5;i++) printf(p[%d]=%d i,p[i]); /*利用下标法输出数组元素*/ printf(\n); } 程序运行结果为: ? please input number: 0 1 2 3 4 ↙ a[0]=0 a[1]=1 a[2]=2 a[3]=3 a[4]=4 *(a+0)=0 *(a+1)=1 *(a+2)=2 *(a+3)=3 *(a+4)=4 *(p+0)=0 *(p+1)=1 *(p+2)=2 *(p+3)=3 *(p+4)=4 p[0]=0 p[1]=1 p[2]=2 p[3]=3 p[4]=4 ? 分析:要实现数组元素的逆序存放,只需按照图10.10所示,将相应的数组元素互换即可。 图10.10 逆序存放数组中元素 ? 例10.7 将数组中的10个数逆序存放。 ? main( ) { int a[10],*p,*head,*end,temp; printf(please input 10 numbers:\n); for(p=a;p=a+9;p++) scanf(%d,p); printf(The original array:\n); for(p=a;p=a+9;p++) printf(%d ,*p); head=a; end=a+9; while(headend) { temp=*head; *head=*end; *end=temp; head++; end--; } printf(The array has been inverted:\n); for(p=a;p=a+9;p++) printf(%d ,*p); } ? 程序运行结果为: ? please input 10 numbers: 1 2 3 4 5 6 7 8 9 10↙ The original array: 1 2 3 4 5 6 7 8 9 10 The array has been inverted: 10 9 8 7 6 5 4 3 2 1 10.3.2 数组名作为函数参数和指针变量作为函数参数的一致性 在前面的学习中,当数组名作函数参数时,要求对应的形参、实参必须是相同类型的数组。函数调用时并不是将整个实参数组的所有元素拷贝成副本传递给被调用函数,而只是将实参数组的首地址传递给形参数组,于是这两个数组将共同占用同一段内存空间。数组名作函数参数,实现的是地址传递调用。数组名代表的是数组的首地址,即数组的指针,它作函数参数,实际上就是指针作函数参数。所以指向数组的指针变量作函数参数,同数组名作函数参数一样,都可以实现函数参数间的地址传递调用。 例10.8 输入10个数,将最小数与第一个元素交换,最大数与最后一个元素交换。 ? void max_min(int *array,int n) { int *max,*min, *p,*arr_end,temp; arr_end=array+n?1; max=min=array; for(p=array+1;p=arr_end;p++) if(*p*max) max=p; else if(*p*min) min=p; temp=*array; *array= *min; *min=temp; temp=*arr_end; *arr_end=*max; *max =temp; return; } main() { int number[10],i; for(i=0;i10;i++) scanf(%d,number[i]); max_min(number,10); for(i=0;i10;i++) printf(%d,,number[i]); printf(\n); } ? 10.3.3 多维数组的指针 1.二维数组的存储结构与地址 设有一个三行四列的二维数组a定义如下。 int a[3][4]={{1,3
原创力文档


文档评论(0)