怎么用指针传递二维数组???

来源:百度知道 编辑:UC知道 时间:2024/07/03 10:48:56
#include "stdio.h"
void disp(int (*a)[2])
{
printf("%d",*(*(a+1)+1));
}

void main()
{
int a[2][2];
a[0][0]=1;
a[0][1]=2;
a[1][0]=3;
a[1][1]=4;
disp(&a[0][0]);
}

总是错,究竟应该怎么用指针传递二维数组?
我在C++的编译环境里编译的

错的可多了。

int (*a)

这是定义一个指针函数的语法。

二维数组一般要把行数和列数传进去,要不然是不行的。因为多维数组在内存中也是用一维来存储的。但是不同的编译器实现是不同的。

void display(int *array, int row, int col);

这样也比较好,也更容易移植。

#include "stdio.h"
void disp(int (*a)[2])
{
printf("%d",*(*(a+1)+1));
}

void main()
{
int a[2][2];
a[0][0]=1;
a[0][1]=2;
a[1][0]=3;
a[1][1]=4;
disp(a);
}

直接
disp(a);