打印

3维数组如何定义

[复制链接]
1465|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dengdc|  楼主 | 2012-11-1 21:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
C中3维数组如何定义与应用。
沙发
heweibig| | 2012-11-1 21:15 | 只看该作者
uchar array[1][2][3];

使用特权

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

使用特权

评论回复
地板
wuhany| | 2012-11-1 21:18 | 只看该作者
不能为零,否则会编译报错

使用特权

评论回复
5
dengdc|  楼主 | 2012-11-1 21:20 | 只看该作者
那我要引用里面的数据,怎么办呢?

使用特权

评论回复
6
dengdc|  楼主 | 2012-11-1 21:20 | 只看该作者
array[1][0][0] 是否就是 3呢?
array[0][1][1]是否就是2呢
谢谢!

使用特权

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

一般不推荐使用多维数组<特别是>=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
lizye| | 2012-11-1 21:24 | 只看该作者
trLineScaleWhenUpAdjust[7][2][0]

使用特权

评论回复
10
jiahy| | 2012-11-1 21:24 | 只看该作者
多维数组就是 一维数组的一维数组

使用特权

评论回复
11
dengdc|  楼主 | 2012-11-1 21:25 | 只看该作者
谢谢各位。

使用特权

评论回复
12
dengdc|  楼主 | 2012-11-1 21:25 | 只看该作者
结贴啦

使用特权

评论回复
13
gaoyang9992006| | 2012-11-6 13:47 | 只看该作者
本帖最后由 gaoyang9992006 于 2012-11-6 13:49 编辑

循环三维数组赋值法

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

使用特权

评论回复
14
gaoyang9992006| | 2012-11-6 13:48 | 只看该作者
val=27
last=26,i=3,j=3,k=3

使用特权

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

本版积分规则

892

主题

13885

帖子

7

粉丝