电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

今天写程序时候要用到二维数组作参数传给一个函数VIP免费

今天写程序时候要用到二维数组作参数传给一个函数_第1页
1/7
今天写程序时候要用到二维数组作参数传给一个函数_第2页
2/7
今天写程序时候要用到二维数组作参数传给一个函数_第3页
3/7
今天写程序的时候要用到二维数组作参数传给一个函数,我发现将二维数组作参数进行传递还不是想象得那么简单,但是最后我也解决了遇到的问题,所以这篇文章主要介绍如何处理二维数组当作参数传递的情况,希望大家不至于再在这上面浪费时间。下文是我从互联网上download的一篇文章,讲的很好,但是我后面将指出问题所在,并加以改进,希望对你有所帮助:首先,我引用了谭浩强先生编著的《C程序设计》上面的一节原文,它简要介绍了如何将二维数组作为参数传递,原文如下(略有改变,请原谅):[原文开始]可以用二维数组名作为实参或者形参,在被调用函数中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如:voidFunc(intarray[3][10]);voidFunc(intarray[][10]);二者都是合法而且等价,但是不能把第二维或者更高维的大小省略,如下面的定义是不合法的:voidFunc(intarray[][]);因为从实参传递来的是数组的起始地址,在内存中按数组排列规则存放(按行存放),而并不区分行与列,如果在形参中不说明列数,则系统无法决定应为多少行多少列,不能只指定一维而不指定第二维,下面写法是错误的:voidFunc(intarray[3][]);实参数组维数可以大于形参数组,例如实参数组定义为:voidFunc(intarray[3][10]);而形参数组定义为:intarray[5][10];这时形参数组只取实参数组的一部分,其余部分不起作用。[原文结束]大家可以看到,将二维数组当作参数的时候,必须指明所有维数大小或者省略第一维的,但是不能省略第二维或者更高维的大小,这是由编译器原理限制的。大家在学编译原理这么课程的时候知道编译器是这样处理数组的:对于数组intp[m][n];如果要取p[i][j]的值(i>=0&&iusingnamespacestd;voidCalc(int**A,intm,intn);int_tmain(intargc,_TCHAR*argv[]){introw=0;intcol=0;inti=0;intA[3][3];for(row=0;row<3;row++){for(col=0;col<3;col++){A[row][col]=row+col;}}Calc((int**)A,3,3);return0;}voidCalc(int**A,intm,intn){if(NULL==A||m<1||n<1){return;}introw=0;intcol=0;inti=0;intj=0;int**matrix=NULL;matrix=newint*[m];if(NULL==matrix){return;}for(row=0;row

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

今天写程序时候要用到二维数组作参数传给一个函数

您可能关注的文档

确认删除?
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群