C语言怎么以二维数组作为参数传递的问题

请问如何自己构建一个print()函数,功能是传入二维数组的参数,然后输出该数组?voidprint(...);main(){inta[3][3]={1,2,3,4,5,... 请问如何自己构建一个print()函数,功能是传入二维数组的参数,然后输出该数组?

void print(...);
main()
{
int a[3][3]={1,2,3,4,5,6,7,8,9};
print(...);
}
void print(...)
{
...
}
展开
 我来答
路人之三
推荐于2017-12-16 · TA获得超过259个赞
知道答主
回答量:178
采纳率:0%
帮助的人:155万
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void fun(int x[][3])
{
    int i, j;

    for (i = 0; i < 2; i++)
    {
        for (j = 0; j < 3; j++)
        {
            printf("%d ", x[i][j]);
        }
        printf("\n");
    }
}

int main()
{
    int a[2][3] = {1, 2, 3, 4, 5, 6};

    fun(a);

    return 0;
}

定义形参的时候定义列的数目即可,其实就算你随便定义行和列的大小也可以运行,只要将数组地址传进去即可

追问
谢谢,我还想问下如果要写函数声明该怎么写?
追答
void fun(int x[][3])
声明里面形参更随意了
二维数组做参数详情见http://www.cnblogs.com/applebunny/archive/2012/09/09/2677307.html
CraZy_小猪
2015-06-22 · TA获得超过792个赞
知道小有建树答主
回答量:871
采纳率:55%
帮助的人:267万
展开全部
考虑要把a作为参数传入到print中,那么print函数就要定义一个接收二维数组的参数,那么什么参数能接收二维数组呢。
就是print(int (*newbuf)[3])
然后newbuf的地址就是a的地址,然后newbuf[i][j]来访问每一个元素了

有问题继续问哈,写的可能不太明白
追问
能举个例子么,谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式