c 中的一个二维数组问题 请教

来源:百度知道 编辑:UC知道 时间:2024/05/09 09:10:12
#include <iostream.h>
void ADD1(*A)
{
for(int i = 0 ; i < 10 ; i++)
for(int j = 0 ; j < 10 ; j++)
A[i][j] = A[i][j] + 1;
}
int main()
{
int A[10][10];
for(int i = 0 ; i < 10 ; i++)
for(int j = 0 ; j < 10 ; j++)
A[i][j] = i * 10 + j;
ADD1(A);
for(int i = 0 ; i < 10 ; i++)
for(int j = 0 ; j < 10 ; j++)
cout << A[i][j];
return 0;
}
求教上面的例子要怎么改

#include <iostream.h>
#include <iomanip.h>

void ADD1(int **A,int row,int col)
{
int *arr = (int *) A;
int i,j;
for ( i = 0; i < row; ++i )
for ( j = 0; j < col; ++j )
++arr[i*col+j];

}

void Add2(int (&A)[10][10])
{
for ( int i = 0; i < 10; ++i )
for ( int j = 0; j < 10; ++j )
A[i][j] += 1;
}

int main()
{
int i,j;
int A[10][10];
for ( i = 0 ; i < 10 ; i++)
for ( j = 0 ; j < 10 ; j++)
A[i][j] = i * 10 + j;

ADD1((int **)A,10,10);
/*
* or Add2( int (&A)[10][10]) but this function only accept the parameter of int a[10][10]
*/
Add2(A);
for ( i = 0 ; i < 10 ; i++)
{
for ( j = 0 ; j < 10 ; j++)
cout << setw(4) << A[i][j] << " ";
cout << endl;
}

return 0;
}