注册 登录
编程论坛 VC++/MFC

为什么二位数组不能替代二重指针

kelaosi 发布于 2013-04-10 14:50, 610 次点击
#include<iostream>
#include<cmath>
using namespace std;

void Table(int k,int **a)//循环表函数
{
    int n=1;
    for(int i=0;i<k;i++)
        n*=2;
    for(i=1;i<=n;i++)
        a[1][i]=i;
    int m=1;
    for(int s=1;s<=k;s++)
    {
        n/=2;
        for(int t=1;t<=n;t++)
        for(int i=m+1;i<=2*m;i++)
            for(int j=m+1;j<=2*m;j++)
            {
                a[i][j+(t-1)*m*2]=a[i-m][j+(t-1)*m*2-m];
                a[i][j+(t-1)*m*2-m]=a[i-m][j+(t-1)*m*2];
            }
            m*=2;
    }
}
void main()
{
    int k,a[100][100];
    cout<<"enter the k:";
    cin>>k;
    Table(k,a);
    cout<<"循环表如下:"<<endl;
    for(int i=1;i<=pow(2,k);i++)
    {
        for(int j=1;j<=pow(2,k);j++)
         cout<<a[i][j]<<" ";
     cout<<endl;
    }
}
为什么不能a【100】【100】替代**a???
2 回复
#2
yuccn2013-04-10 15:09
为什么不能a【100】【100】替代**a???不明白你问什么
#3
kelaosi2013-04-10 15:27
回复 2楼 yuccn
我调用Table函数的时候Table(k,a)出错了
1