C++三维数组问题。

#include<iostream.h>
void main()
{
static char t[][3][5]={"abcd","efgh","ijkl","mnop","qrst","uvwx"};
cout<<t[1][2][3]<<*(t[1][2]+3)<<*(*(*(t+1)+2)+3)<<*(*(t[1]+2)+3)<<endl;
cout<<**t<<"\t"<<*(*(t+1)+1)<<"\t"<<t[0][2]<<"\t"<<**t+1<<endl;
}

执行后输出:
xxxx
abcd qrst ijkl bcd

我不懂t1][2][3]为什么是x啊。**t+1为什么是bcd??
搞不懂三维数组是怎样赋值的。如int t[a][b][c] ,a,b,c分别表示什么啊?

第一行,每个分别输出一个字符X(也就是“uvwx”中的x)
其实数组是这样的
{
{{'a', 'b', 'c','d','\0'}, {'e','f','g','h','\0'}, {'i','j','k','l','\0'}},
{{'m','n','o','p','\0'}, {'q','r','s','t','\0'},{'u','v','w','x','\0'}}
};
t:表示三维数组的地址
*t:表示三维数组首元素的地址(相当于t[0]),(值是同上面一样的,但是意义不一样)
**t:相当于t[0][0]
t[0]:表示含有3个字符数组(每个数组有5个字符)
t[1]:表示含有3个字符数组(每个数组有5个字符)
t[0][0]:表示字符数组含有5个元素
t[0][1]:表示字符数组含有5个元素
t[0][2]:表示字符数组含有5个元素
t[0][0][0]:表示字符数组的第一个元素
t[0][0][1]:表示字符数组的第二个元素追问

其实我是想知道t[1][2][3]中的1,2,3是怎样指向x的。我好糊涂。还有**t+1为什么是bcd??

追答

t[1]是第一维的第二个元素“mnop”
t[1][2]第二维的第三个元素“uvwx”
t[1][2][3]第三维的第第四个元素‘x’

*t是t[0]
**t是t[0][0]
**t + 1是t[0][0] + 1

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网