正文

C++ 入门 第5章  3. 用多维数组名作函数参数2008-09-22 10:19:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/yzrj/38434.html

分享到:

 

如果用二维数组名作为实参和形参,在对形参数组声明时,必须指定第二维(即列)的大小,且应与实参的第二维的大小相同。第一维的大小可以指定,也可以不指定。如
int array3][10;        //形参数组的两个维都指定
  int array[][10;         //第一维大小省略
二者都合法而且等价。但是不能把第二维的大小省略。下面的形参数组写法不合法:
int array[][];                //不能确定数组的每一行有多少列元素
int array3][];               //不指定列数就无法确定数组的结构
在第二维大小相同的前提下,形参数组的第一维可以与实参数组不同。例如,实参数组定义为
int score5][10;   
 
而形参数组可以声明为
int array3][10;        //列数与实参数组相同,行数不同
int array8][10;
这时形参二维数组与实参二维数组都是由相同类型和大小的一维数组组成的,实参数组名score代表其首元(即第一行)的起始地址,系统不检查第一维的大小。
如果是三维或更多维的数组,处理方法是类似的。
 
5.8 有一个3×4的矩阵,求矩阵中所有元素中的最大值。要求用函数处理。
解此题的算法已在例5.5中介绍。
程序如下:
#include <iostream>
using namespace std;
int main( )
{int max_value(int array[][4);
 int a3][4={{11,32,45,67},{22,44,66,88},{15,72,43,37}};
 cout<<max value is <<max_value(a)<<endl;
 return 0;
}
int max_value(int array[][4)
{int i,j,max;
 
max=array0][0;
 for( i=0;i<3;i++)
     for(j=0;j<4;j++)
       if(arrayi][j>max) max=arrayi][j;
 return max;
}
运行结果如下:
max value is 88  
读者可以将max_value函数的首部改为以下几种情况,观察编译情况:
int max_value(int array[][])
int max_value(int array3][])
int max_value(int array3][4)
int max_value(int array10][10)
int max_value(int array12)

阅读(2716) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册