说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

初学java,数组问题

编辑:说三道四文库 发布时间:2018-06-22 12:04
HTML文档下载 WORD文档下载 PDF文档下载
    int bil(int i, int j, int k, int l, int i1, int j1)
    {
        int ai[] = mweights[i1 & 0xff];
        int ai1[] = mweights[255 - i1 & 0xff];
        int k1 = ai1[i >> 16 & 0xff] + ai[j >> 16 & 0xff];
        int l1 = ai1[i >> 8 & 0xff] + ai[j >> 8 & 0xff];
        int i2 = ai1[i & 0xff] + ai[j & 0xff];
        int j2 = ai1[k >> 16 & 0xff] + ai[l >> 16 & 0xff];
        int k2 = ai1[k >> 8 & 0xff] + ai[l >> 8 & 0xff];
        int l2 = ai1[k & 0xff] + ai[l & 0xff];
        int i3 = 255 - j1;
        k1 = k1 * i3 + j2 * j1 >> 16;
        l1 = l1 * i3 + k2 * j1 >> 16;
        i2 = i2 * i3 + l2 * j1 >> 16;
        return (k1 << 16) + (l1 << 8) + i2 + 0xff000000;
    }
这个插值函数里的ai和ai1怎么没有new就可以使用呢?
mweights 是已经 new出来了的一个二维数组
            mweights = new int[256][256];
            for(int j = 0; j < 256; j++)
            {
                for(int l = 0; l < 256; l++)
                    mweights[j][l] = j * l;

            }
帮帮忙呀,谢谢!
mweights是什么东西,从哪来的?
如果有对应的C++或Pascal表示就更好了,呵呵
wait...
int ai[] = mweights[i1 & 0xff];
记 得 mweights是 个 二 维 数 组 来 着 .
int ai[] = mweights[i1 & 0xff];
编 译 时 应 报 错 ,不 能 将 int 赋 给 一 个 数 组 .
问题是编译时确实没有报错
而且程序跑得很好!
这个函数本身是肯定没有问题的!
是不是应该把这种情况看成是直接初始化?
java真让人迷茫!
mweights定义成二维数组,则mweights[i]就是一个一维数组,mweights[i][j]是一个整数;
int ai[] = mweights[il &0xff] 就是把mweights[il &0xff]这个一维数
组复制给ai,当然不要new了。
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘