首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2013-01-02 
关于二维数组当实参,指针当形参问题#include iostream using namespace std void mm(int**)int main()

关于二维数组当实参,指针当形参问题
#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]的类型不符合。

热点排行