c语言c++语言如何用二维数组做形参?

 我来答
White_MouseYBZ
推荐于2017-10-05 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6465万
展开全部

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;
}
beddy1
2012-10-24 · TA获得超过1988个赞
知道大有可为答主
回答量:2271
采纳率:0%
帮助的人:2190万
展开全部
二维数组做形参?C++的数组用形参的时候非常之弱,你确定你需要它?
N维数组做形参必须指定后n-1维的大小,不然编译器无法知道如何使用它,

void func(int a[][10]) 或 void func2(int b[][10][10])

虽然写是可以这样子写,不过,其实上面那种代码等价于
void func(int (*a)[10]) 和 void func2(int (*b)[10][10])
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
缸中的大脑
2012-10-24
知道答主
回答量:4
采纳率:0%
帮助的人:6136
展开全部
作为形参时函数的定义:返回值类型 函数名(数组类型 数组名[第一维大小][第二维大小])
说明:注意二维数组定义时第二维大小不能省略,第一维大小可省。
作为实参时:实参直接写二维数组名即可。
例:
void Output(int _arrA[][4]);//定义函数,注意二维数组定义或者作为参数时第二维大小必须有
int main()
{
...............;
Output(arrA);//调用函数,数组名作为实参传递给函数

return 0;
}

void Output(int _arrA[][4])//注意第二维大小必须有
{

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
GarfieldGCat
2012-10-24 · TA获得超过500个赞
知道小有建树答主
回答量:445
采纳率:92%
帮助的人:272万
展开全部
要么你告诉他这是个二维数组

int arr[N][N]
要么自己决定偏移量

int * arr
*(*(arr+x)+y)
更多追问追答
追问
我要的是不能决定一维和二维长度的二维数组的参数传递!
追答
看仔细一点,后面不是说了自己决定偏移量的办法吗
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
早行x远客
2012-10-24 · TA获得超过798个赞
知道小有建树答主
回答量:148
采纳率:0%
帮助的人:87.2万
展开全部
int array[m][n];

func(int * arry[n])
{}

main()
{
func(array);

}
这样调用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式