打印

C中3维数组如何定义与应用

[复制链接]
1001|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zwll|  楼主 | 2014-2-16 09:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁熟悉,来讲讲
沙发
chuxh| | 2014-2-16 09:51 | 只看该作者
uchar array[1][2][3];

使用特权

评论回复
板凳
juventus9554| | 2014-2-16 09:52 | 只看该作者
uchar array[2][2][2]=
{
         {
                 {1,1},
                 {2,2}
         },
         {
                 {3,3},
                 {4,4}
         }
};

使用特权

评论回复
地板
juventus9554| | 2014-2-16 09:52 | 只看该作者
不能为零,否则会编译报错

使用特权

评论回复
5
zwll|  楼主 | 2014-2-16 09:54 | 只看该作者
那我要引用里面的数据,怎么办呢?

使用特权

评论回复
6
zwll|  楼主 | 2014-2-16 09:54 | 只看该作者
array[1][0][0] 是否就是 3呢?
array[0][1][1]是否就是2呢
谢谢!

使用特权

评论回复
7
zwll|  楼主 | 2014-2-16 09:55 | 只看该作者
比如说我定义三维数组:
const unsigned char trLineScaleWhenUpAdjust【9】【3】【3】=
{
         {{17,16,14},        {17,16,14},        {17,16,14}},                {{18,12,7},        {18,12,7},        {18,12,7}},                        {{22,25,16},        {22,25,16},        {22,25,16}},        
         {{12,0,3},        {12,0,3},                        {12,0,3}},               
        {{12,0,3},        {12,0,3},                        {12,0,3}},               
        {{13,0,5},        {13,0,5},                        {13,0,5}},               
        {{20,13,9},        {20,13,9},        {20,13,9}},                        {{23,16,12},        {23,16,12},        {230,16,12}},        
         {{29,21,12},        {29,21,12},        {29,21,12}}               
};
    我要引用 230时,该怎么引用这个值呢,谢谢!

使用特权

评论回复
8
司徒老鹰| | 2014-2-16 09:55 | 只看该作者
首先把表格规范一下才行,你那个表我看没有人能知道

一般不推荐使用多维数组<特别是>=3维的数组>,任何高手都会很头痛的

一般一维,二维就可以了

const unsigned char trLineScaleWhenUpAdjust [9][3][3]=
{
//--------------------------------------------------------------
//           0                  1                  2
     {{17,16,14}, {17,16,14}, {17,16,14}},    // 0
     {{18,12,7},   {18,12,7},  {18,12,7}},       // 1
     {{22,25,16}, {22,25,16}, {22,25,16}},    // 2
     {{12,0,3},     {12,0,3},   {12,0,3}},          // 3
     {{12,0,3},     {12,0,3},   {12,0,3}},          // 4
     {{13,0,5},     {13,0,5},   {13,0,5}},          // 5
     {{20,13,9},   {20,13,9},  {20,13,9}},       // 6
     {{23,16,12}, {23,16,12}, {230,16,12}},  // 7
     {{29,21,12}, {29,21,12}, {29,21,12}}     // 8
};

那么
trLineScaleWhenUpAdjust[7][2][0] = 230

使用特权

评论回复
9
llljh| | 2014-2-16 09:56 | 只看该作者
trLineScaleWhenUpAdjust[7][2][0]

使用特权

评论回复
10
dingy| | 2014-2-16 09:56 | 只看该作者
多维数组就是 一维数组的一维数组

使用特权

评论回复
11
pengf| | 2014-2-16 09:57 | 只看该作者


循环三维数组赋值法

main()
{
int x[3][3][3]={0} , i=0,j=0,k=0,val=0;
for(i=0;i<3;i++)
     for(j=0;j<3;j++)
        for(k=0;k<3;k++)
         x[j][k]=val++;
printf("val=%d\n",val);
printf("last=%d\n",x[2][2][2]);
printf("i=%d,j=%d,k=%d",i,j,k);
getch();
}

使用特权

评论回复
12
pengf| | 2014-2-16 09:57 | 只看该作者
val=27
last=26,i=3,j=3,k=3

使用特权

评论回复
13
zwll|  楼主 | 2014-2-16 09:58 | 只看该作者
谢谢各位。

使用特权

评论回复
14
zwll|  楼主 | 2014-2-16 09:58 | 只看该作者
结贴啦

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

885

主题

11314

帖子

5

粉丝