黑马程序员技术交流社区

标题: 难道我把c和java的知识搅晕了?关于数组 [打印本页]

作者: 黑马-张洋    时间: 2013-2-26 14:17
标题: 难道我把c和java的知识搅晕了?关于数组
  1. String s[]=new String[]{"Zero","One","Two"," Three"};
  2.                 String []s2={"Zero","One","Two"," Three"};
  3.                 String s1[4]=new String[]{"Zero","One","Two"," Three"};//Syntax error on token "4", delete this token
  4.                
  5.                 int a[]=new int[]{1,2,3};
  6.                 int a1[3]=new int[]{1,2,3}; //Syntax error on token "3", delete this token
复制代码
其中s1和a1编译要报错,报错的内容在//后

我记得在等号前的[]不输入数字可以,但是输入了也可以啊,输入了就表示我给这个数组定义了大小,划分了空间啊。

难道java里面不能这样,还是我理解上有错误
作者: 黑马刘杰    时间: 2013-2-26 14:20
int [3]=new int[]{1,2,3};这里的前面中括号中不能有数字
int[] 这里表示是数组类型的,里面不能有数字。
作者: 何伟    时间: 2013-2-26 14:25
String s1[4]=new String[]{"Zero","One","Two"," Three"}
c和java在这里不同,
String s1[] = new String[]{"Zero","One","Two"," Three"}
java里后面{}里给出了各元素的值,前面[]里就不能在规定数组的长度,
而c去却可以,
作者: 贾文泽    时间: 2013-2-26 14:32
前面的是数据类型,中括号内是不可以有数字的,定义大小可以放在后面的括号里
  1. int[] a = new int[4];
  2. int a[][] = new int[5][];
复制代码

作者: 黑马-张洋    时间: 2013-2-26 14:44
贾文泽 发表于 2013-2-26 14:32
前面的是数据类型,中括号内是不可以有数字的,定义大小可以放在后面的括号里 ...

int[] a = new int[4]{1,2,3,4,};//Cannot define dimension expressions when an array initializer is provided

根据这句话的提示,是不是4和{1,2,3,4,}不能同时出现?
作者: 贾文泽    时间: 2013-2-26 14:59
黑马-张洋 发表于 2013-2-26 14:44
int[] a = new int[4]{1,2,3,4,};//Cannot define dimension expressions when an array initializer is  ...

int[] a = new int[4]{1,2,3,4,};  // 数组在初始化的时候必须定义他的长度,并且不可变,[4] 和 {1,2,3,4} 都可以确定数组的长度,不允许这两种同时存在
作者: 夏振博    时间: 2013-2-26 15:02
自定义就不能给容量大小,给容量大小就不能自定义。
作者: Benwolf0818    时间: 2013-2-26 15:05
你如果直接赋值的话,就不用再写数组长度,否则容易引起冲突。在java中直接赋值与规定数组长度二选一即可。
作者: 黑马-张洋    时间: 2013-2-26 15:05
夏振博 发表于 2013-2-26 15:02
自定义就不能给容量大小,给容量大小就不能自定义。

谢谢这句:都可以确定数组的长度,不允许这两种同时存在
java智商太高了,我们写多了都不行
作者: 郑元皓    时间: 2013-2-26 18:56
小问题,大智慧啊。
作者: 吴俊旭    时间: 2013-2-26 20:03
数组元素初始化和数组长度不能同时进行,只能二选一
作者: 吴俊旭    时间: 2013-2-26 20:03
数组元素初始化和数组长度不能同时进行,只能二选一
作者: HM王琦    时间: 2013-2-26 21:36
这个我懂,例如:int[] a=new int[] {1,2,3} ;这里面 int[] 是数据类型,代表整数型数组类型,new int[] 表示创建一个含有3个元素的整数型数组 a是这个数组的引用。
还可以int[] a={1,2,3};
int[] a=new int[3];表示创建一个三个元素的整形数组a
作者: 张宁    时间: 2013-2-26 22:14
String s1[4]=new String[]{"Zero","One","Two"," Three"}
c和java在这里不同,
String s1[] = new String[]{"Zero","One","Two"," Three"}
java里后面{}里给出了各元素的值,前面[]里就不能在规定数组的长度,
而c去却可以,




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2