#include<iostream>
using namespace std;
void print_matrix(int* a, int row, int column)
{
int i, j;
for(i=0;i<row;++i)
{
cout<<"\n";
for(j=0;j<column;++j)
{
int element= *((a+i*column)+j);
cout<< element<<" " ;
}
}
}
int main()
{
int row, column;
row = column=3;
column=2;
int a[row][column];
int i, j;
cout<< "Enter the matrix\n";
for(i=0;i<row;++i)
{
for(j=0;j<column;++j)
{
cin>> a[i][j];
}
}
int* r = &a[0][0];
print_matrix(r, row, column);
**print_matrix(a, row, column); // error**
system("pause");
return 0;
}
错误是 -- cannot convert int (*)[((unsigned int)((int)column))]' to
int*' for argument 1' to
void print_matrix(int*, int, int)' 为什么我会收到错误,因为我认为基地址“a = &a[0][0]”,所以我可以直接调用而不是声明一个新的 int*r 吗?