指针变量作为形参处理一维、二维数组简单剖析.docxVIP

指针变量作为形参处理一维、二维数组简单剖析.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
指针变量作为形参处理一维、二维数组简单剖析

处理一维数组数组名作为函数形参编译器是将数组名作为指针变量形式处理的我想大家都清楚。比如说定义一个min函数,形参包括数组名和一个处理数组数据个数的变量n,用来实现求解一维数组前n项的最小值问题为例。有一个一维数组int?a[5]={1,2,,3,4,5};那么我们调用min(a,4)就是表示求解一维数组a[5]中前4项的最小值。int min(int f[],?int?n){?int m,?i;m?=?f[0];for?(i?=?0;?i??n;?i++){if?(f[i]m)m?=?f[i];}return m;}我们现在假设是一个二维数组int?b[3][4]=?{?{?6,?13,?5,?7?},?{?98,?148,?456,?8?},?{?45,561,?515,?17?}?};求这个二维数组同样功能的实现函数,难道我们需要再重新定义一个函数来实现吗?当然不需要,利用min函数完全可以实现对二维数组同样功能的操作,这里我们调用min(b[0],4)即实现了求解二维数组前四项最小值的操作,(这里的形参用b[0]或者*b等形式原因不在赘述,不懂建议去了解多维数组解释),函数体中的f[i]这里解释下,形参f[]编译器以指针形式*f接收b[0],因此函数体中的f[i]表示b[0][i],(换作f[i]等效为*(f+i)即*(b[0]+i)也就是b[0][i]形式理解也无可厚非),也就是说功能函数实现一维数组的功能完全可以不用去修改函数来实现在二维数组同样的操作。换种思路,既然数组名作形参是以指针变量实现的,那么我们也完全可以将形参定义成指针变量的形式来解决数组问题。这里主要讨论二维数组,比如min_函数,至于函数体是否以指针形式随个人爱好吧。这里我们调用min_(b[0],4)同样实现了求解二维数组前四项最小值的操作。intmin_(int*f,?int?n){?int m,?i;m?=?f[0];for?(i?=?0;?i??n;?i++){if?(f[i]m)m?=?f[i];}return m;}法二、当然求解二维数组也完全可以将二维数组名作为形参的形式来解决二维数组问题。比如定义?max_value函数用于求解某行的最大值,我们可以调用max_value(b,0)用来求得数组b的0行元素的最大值,注意这是实参是b。int?max_value(int?array[][4],int?s){int??j,?max;max?=?array[0][0];for?(j?=?0;?j??4;?j++){if?(array[s][j]max)max?=?array[s][j];}return?(max);}实际上,编译器看到形参二维数组名是当作一个指向4个元素的数组指针变量来看待的,因此,这种方式也有对应的另外一种写法,就是形参以指针数组形式来定义。比如int?max_value_(int?(*array)[4],int?s){int??j,?max;max?=?array[0][0];for?(j?=?0;?j??4;?j++){if?(array[s][j]max)max?=?array[s][j];}return?(max);}同样函数体内是否用指针表示看个人爱好了。这里讲数组用了四种表达方式,当然法二的问题在于其泛用性要打折扣,毕竟其规定了特定的列数。

文档评论(0)

hhuiws1482 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档