打印

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

[复制链接]
415|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhuhuis|  楼主 | 2016-4-12 20:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁熟悉C中3维数组如何定义与应用
沙发
wenfen| | 2016-4-12 20:29 | 只看该作者
uchar array[2][2][2]=
{
          {
                  {1,1},
                  {2,2}
          },
          {
                  {3,3},
                  {4,4}
          }
};

使用特权

评论回复
板凳
tian111| | 2016-4-12 20:32 | 只看该作者

不能为零,否则会编译报错

使用特权

评论回复
地板
zhuhuis|  楼主 | 2016-4-12 20:38 | 只看该作者

那我要引用里面的数据,怎么办呢?

使用特权

评论回复
5
zhuhuis|  楼主 | 2016-4-12 20:42 | 只看该作者
array[1][0][0] 是否就是 3呢?
array[0][1][1]是否就是2呢
谢谢!

使用特权

评论回复
6
zhuhuis|  楼主 | 2016-4-12 20:45 | 只看该作者
比如说我定义三维数组:
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时,该怎么引用这个值呢,谢谢!

使用特权

评论回复
7
chenho| | 2016-4-12 20:49 | 只看该作者
先把表格规范一下才行,你那个表我看没有人能知道

一般不推荐使用多维数组<特别是>=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

使用特权

评论回复
8
huwr| | 2016-4-12 20:52 | 只看该作者
trLineScaleWhenUpAdjust[7][2][0]

使用特权

评论回复
9
huanghuac| | 2016-4-12 20:54 | 只看该作者
多维数组就是 一维数组的一维数组

使用特权

评论回复
10
happy_10| | 2016-4-12 20:59 | 只看该作者
循环三维数组赋值法

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();
}

使用特权

评论回复
11
冰清玉洁| | 2016-4-12 21:00 | 只看该作者
val=27
last=26,i=3,j=3,k=3

使用特权

评论回复
12
zhuhuis|  楼主 | 2016-4-12 21:03 | 只看该作者
谢谢各位。

使用特权

评论回复
13
rreedd00| | 2016-4-13 19:01 | 只看该作者
像这样的三维数组在应用中很少见呢!!!

使用特权

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

本版积分规则

728

主题

8464

帖子

6

粉丝