回 帖 发 新 帖 刷新版面

主题:指针和数组,初学者, 头晕啊,请教各位大哥

看到别人写的一个代码

#include <iostream>
using namespace std;
int main()
{
    int cht[3][4][5]={0};
    
    for(int i=0;i<3;i++)
     for(int j=0;j<4;j++)
       for(int k=0;k<5;k++)
       {
           cht[i][j][k]=i*4*5+j*5+k;
           cout<<" "<<cht[i][j][k];
       }
    cout<<endl<<endl;
        
    int (*q)[4][5]=cht;    为什么可以这样定义啊
    int (*p)[5]=*q;        这里,q,p,m 不是都是一维指针吗 ?  
    int *m=*p;             cht,*q,*p,各代表什么啊.
        
    for(;m!=*p+3*4*5;m++)
        cout<<" "<<*m;
        
    cout<<endl<<endl;
        
    m=*p;
    for(;q!=cht+3;q++)
      for(;p!=*q+4;p++)   
       for(;m!=*p+5;m++)
         cout<<"  "<<*m;
       
   
}

回复列表 (共1个回复)

沙发

int cht[3][4][5];
int (*q)[4][5]=cht;    为什么可以这样定义啊

------------


int cht[3];
int (*q) = cht;
有本质区别吗?一个类型是 int,一个类型是 int[4][5]

我来回复

您尚未登录,请登录后再回复。点此登录或注册