//代码示范,在g++下编译通过
using namespace std;
void Func(int **a,int m,int n)
{
for(int i = 0;i < m; ++i)
for(int j = 0;j < n; ++j)
cout << *((int*)a + 10*m + n) <<endl; //解引用只有一次,再把二级指针转为一级指针
}
int main()
{
int static a[10][10];
Func((int **)a,10,10); //把一级指针转换为二级指针
return 0;
}
//上述代码中抓住指针地址不变的原则,传递了一个表头进入函数,进行了灵活了转换。
//显然a[][] 这样的使用是不合法的。