读书人

关于二维数组当实参指针当形参有关问

发布时间: 2013-01-02 13:08:45 作者: rapoo

关于二维数组当实参,指针当形参问题
#include <iostream>
using namespace std;
void mm(int**);
int main()
{
int a[2][3]={1,2,3,4,5,6};
mm(a);
system("pause");
return 0;
}
void mm(int** a)
{
cout<<a[1][1];
}
编译错误如何改正?(要求一定要用指针当形参)
[解决办法]


#include <iostream>
using namespace std;
void mm(int(*a)[3]);
int main()
{
int a[2][3]={1,2,3,4,5,6};
mm(a);
system("pause");
return 0;
}
void mm(int (*a)[3])
{
for(int i=0;i<2;++i)
{
for (int j=0;j<3;++j)
{
cout<<a[i][j]<<endl;
}
}
}

[解决办法]
因为int **是指向指针的指针,int(*a)[3]是指一个由3个int值构成数组的指针,这个的类型和int [2][3]是一样的,虽然int **也是二级指针,但是它和int [2][3]的类型不符合。

读书人网 >C++

热点推荐