请哪位高手帮我详细解释一下这个问题(问题注释在程序上了)?

[复制链接]
查看11 | 回复1 | 2010-7-17 16:52:49 | 显示全部楼层 |阅读模式
#include //84
using namespace std;
int main()
{
int a[2][3][4]={{{1,2,3,4},{5,6,7,8},{9,10,11,12}},{{13,14,15,16},{17,18,19,20},{21,22,23,24}}};
int (*p)[3][4]=a;
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)

for(int k=0;k<4;k++)

cout<<a[j][k]<<endl;//这边也可以写成 cout<<*(*(*(p+i)+j)+k)<<endl; ,但是不能写成cout<<*(p+3*4*i+4*j+k)<<endl;
return 0;
}

回复

使用道具 举报

千问 | 2010-7-17 16:52:49 | 显示全部楼层
要写成这样:*(&p[0][0][0]+12*i+4*j+k)因为p不是一个一维指针.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行