c语言c++语言如何用二维数组做形参?
6个回答
展开全部
C/C++中,二维数组的第一维的每一个元素都是一维数组。所以,用指向一维数组的指针或用第一维维数空缺的二维数组作为函数的形式参数都能达到目的。设处理数组为int型,举例代码如下:
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
void myprint(int (*p)[5]){//p是指向有5个int型元素的一维数组的指针
//void myprint(int p[][5]){//这样写效果是一样的
int i,j;
for(i=0;i<3;i++){
for(j=0;j<5;printf("%3d",p[i][j++]));
printf("\n");
}
}
int main(void){
int a[3][5]={{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15}};
myprint(a);
return 0;
}
展开全部
作为形参时函数的定义:返回值类型 函数名(数组类型 数组名[第一维大小][第二维大小])
说明:注意二维数组定义时第二维大小不能省略,第一维大小可省。
作为实参时:实参直接写二维数组名即可。
例:
void Output(int _arrA[][4]);//定义函数,注意二维数组定义或者作为参数时第二维大小必须有
int main()
{
...............;
Output(arrA);//调用函数,数组名作为实参传递给函数
return 0;
}
void Output(int _arrA[][4])//注意第二维大小必须有
{
}
说明:注意二维数组定义时第二维大小不能省略,第一维大小可省。
作为实参时:实参直接写二维数组名即可。
例:
void Output(int _arrA[][4]);//定义函数,注意二维数组定义或者作为参数时第二维大小必须有
int main()
{
...............;
Output(arrA);//调用函数,数组名作为实参传递给函数
return 0;
}
void Output(int _arrA[][4])//注意第二维大小必须有
{
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要么你告诉他这是个二维数组
int arr[N][N]
要么自己决定偏移量
int * arr
*(*(arr+x)+y)
int arr[N][N]
要么自己决定偏移量
int * arr
*(*(arr+x)+y)
更多追问追答
追问
我要的是不能决定一维和二维长度的二维数组的参数传递!
追答
看仔细一点,后面不是说了自己决定偏移量的办法吗
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int array[m][n];
func(int * arry[n])
{}
main()
{
func(array);
}
这样调用
func(int * arry[n])
{}
main()
{
func(array);
}
这样调用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询