一道题:
public class Test{
public static void main(String[] args) {
int []a,b[];
int [][]c;
int d[][];
a=null;
b=null;
c=null;
d=null;
//b=a;
                  //d=a;
}
}
int []a,b[];表达了什么意思?如果去掉注释,那两句为什么是错的?

解决方案 »

  1.   

    b=a;//a为null,不能赋值
    d=a;//理由同上,且一个为二维一个为一维
      

  2.   

    晕,看漏了。
    二个理由都完全一样,同为下一个。null赋值,1.5应该可以
      

  3.   

    int []a,b[];表达了什么意思
    int []a ---> int a[];
    而b就相当于b[][]
      

  4.   

    数组的定义,如int a[]或者int []a是相同的,他其实就是定义了一个指向一维数组的引用变量,相当于c语言中的指针,因为还没有给他开辟空间,就像是没有电视机,只有遥控器一样,不能干任何事情,它类似于类的引用变量,当还没有指向存在的对象时,就是垃圾。所以不能对他进行操作,当然也不能进行赋值了。 二维数组类似!
      

  5.   

    int []a,b[];表达了什么意思
    int []a ---> int a[];
    而b就相当于b[][]
    ----------------------
    抱歉,我还是不懂。我知道int []a ---> int a[];但为什么“b就相当于b[][]”?如果把“int []a,b[];”改为“int a[],b[];”,那b=a就可以通过。
      

  6.   

    你把int []a,b[];分两行来写就可以了.
    这是因为在编译int []a,b[];时,先编译了int [],然后再分别定义了a和b[],定义后的a和b[]就变成了a[]和b[][]了.
      

  7.   

    int []a,b[];
    equals to 
    int[]a;
    int[]b[];
    equals to
    int[]a;
    int[][]b;
    equals to
    int a[];
    int b[][];
      

  8.   

    我楼上的那些看来都没有去认真学或者自己做例子的,说话前要先做实验是个好习惯。
    你的程序改为
    class Test{
    public static void main(String[] args) {
    int []a,b;
    int [][]c;
    int d[];
    a=null;
    b=null;
    c=null;
    d=null;
    b=a;
    d=a;
    }
    }
    也就是说使得a,b,d的维数都相等的话就可以赋值了。不相信的话可以复制去运行下看。