主题:指针和数组,初学者, 头晕啊,请教各位大哥
看到别人写的一个代码
#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;
}
#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;
}