打印

数组的定义

[复制链接]
836|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chenjunt|  楼主 | 2014-11-29 13:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁熟悉C中3维数组如何定义与应用
沙发
supernan| | 2014-11-29 13:19 | 只看该作者
uchar array[1][2][3];

使用特权

评论回复
板凳
zwll| | 2014-11-29 13:21 | 只看该作者
uchar array[2][2][2]=
{
          {
                  {1,1},
                  {2,2}
          },
          {
                  {3,3},
                  {4,4}
          }
};

使用特权

评论回复
地板
zwll| | 2014-11-29 13:21 | 只看该作者
不能为零,否则会编译报错

使用特权

评论回复
5
chenjunt|  楼主 | 2014-11-29 13:22 | 只看该作者
那我要引用里面的数据,怎么办呢?

使用特权

评论回复
6
chenjunt|  楼主 | 2014-11-29 13:22 | 只看该作者
array[1][0][0] 是否就是 3呢?
array[0][1][1]是否就是2呢
谢谢!

使用特权

评论回复
7
chenjunt|  楼主 | 2014-11-29 13:23 | 只看该作者
比如说我定义三维数组:
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
chuxh| | 2014-11-29 13:24 | 只看该作者
首先把表格规范一下才行,你那个表我看没有人能知道

一般不推荐使用多维数组<特别是>=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
juventus9554| | 2014-11-29 13:26 | 只看该作者
trLineScaleWhenUpAdjust[7][2][0]

使用特权

评论回复
10
司徒老鹰| | 2014-11-29 13:27 | 只看该作者
多维数组就是 一维数组的一维数组

使用特权

评论回复
11
juventus9554| | 2014-11-29 13:29 | 只看该作者


循环三维数组赋值法

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
juventus9554| | 2014-11-29 13:29 | 只看该作者
val=27
last=26,i=3,j=3,k=3

使用特权

评论回复
13
chenjunt|  楼主 | 2014-11-29 13:30 | 只看该作者
谢谢各位。

使用特权

评论回复
14
chenjunt|  楼主 | 2014-11-29 13:31 | 只看该作者
结贴啦,周末快乐哈

使用特权

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

本版积分规则

718

主题

7868

帖子

5

粉丝