二维数组的址如何作为参数传递?

来源:百度知道 编辑:UC知道 时间:2024/05/26 14:05:37
我想把一个二维数组的地址传给一个函数,然后在那个函数里访问二维数组的内容,要怎样呢?
我是这样做的:
void fun(int a[][10])
{
int b[10][10];
b=a; //这行有错
}
这样就出错了,它说int[][10]不能传递给int[10][10],要怎么做才行呢?
强调一下,我想传的是地址。

数组地址是个常量,不可以再改变值了,怎么忘了?
想复制数据就挨个赋值吧

#include <iostream.h>

void f(int a[10][10])
{
int c;
int* d[10];
for (int i = 0; i < 10; i++)
{
d[i] = a[i];
for (int j = 0; j < 10; j++)
{
c = a[i][j];
cout << c << endl;
}
}
for (int k = 0; k < 10; k++)
{
for (int j = 0; j < 10; j++)
{
cout << d[k][j] << endl;
}
}
}

int main()
{
int b[10][10];
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
b[i][j] = i * 10 + j;
}
}
f(b);
return 0;
}
这个可以
这个就是地址,它应该可以修改真实变量的值

数组是不能相互赋值的,所以b=a是错的。
for(int i=0;i<10;i++)
for(int j=0;j<10;j++)
b[i][j]=a[i][j];
这样就可以了。

你要传地址的话可以改成这样
void fun(int a[][10])
{
int **b;
b=a;
}