黑马程序员技术交流社区

标题: 请问int x[3] = {1, 2, 3}为什么是错的?? [打印本页]

作者: LLL_LLL    时间: 2016-9-11 12:57
标题: 请问int x[3] = {1, 2, 3}为什么是错的??
哪位大神来解释下
作者: 无悔的人生    时间: 2016-9-11 13:16
本帖最后由 无悔的人生 于 2016-9-11 13:19 编辑

你这样是动态和静态同时声明了  你应该是int[] x={1,2,3} 或者int[] x=new int[3]  然后在给x[0]  x[1]  x[2]赋值
作者: chkanon    时间: 2016-9-11 13:20
java不允许,如果你长度传4的情况下,jvm怎么办;后面三个元素已经限定了数组长度,前面再传3就多此一举了
作者: 琼华掌教    时间: 2016-9-11 14:22
动静态只能用一,这是结合啊不允许
作者: 奋斗41280    时间: 2016-9-11 14:31
动静不能结合使用.这是规则.
作者: 小胖妞    时间: 2016-9-11 15:07
动静态结合
作者: tliangl928    时间: 2016-9-11 15:14
java不容许这样,所以会报错……
作者: 青火    时间: 2016-9-11 15:33
int[] x = {1,2,3};

这样就不会错了
作者: gjf821687    时间: 2016-9-11 15:49
int[] x = {1,2,3};   这样才是对的
作者: 18333601807    时间: 2016-9-11 15:54
方便的话,粘出来源码看看啊
作者: syso信任    时间: 2016-9-11 19:40
int x[3]  加了一个3,已经不是代表类型了
作者: liyong2267576    时间: 2016-9-11 19:56
前面不能用三                                                              
作者: 32282722    时间: 2016-9-11 20:06
本帖最后由 32282722 于 2016-9-11 20:08 编辑

首先前边定义错了,数组定义int[] x  或者int x[]  []里不能有数据

作者: 383412263    时间: 2016-9-11 20:36
我当时看的时候也这么干了,当时还郁闷为啥这样就不对,后来只能当规则记了。动静态只能用一!
作者: NewsmallWhite    时间: 2016-9-11 20:55
数组的初始化方式,分为静态初始化,和动态初始化。你使用就是静态的初始化,静态初始化,只需要在花括号里面写上数组的元素即可,不需要再给数组规定大小,系统会默认使用你在花括号里面的长度为数组的长度
作者: SunCowbee    时间: 2016-9-13 01:58
数组长度是3,但是数组的下标只能是0-2
作者: Array先生    时间: 2016-9-13 07:26
java虚拟机不允许这样对数组进行初始化
作者: 小菜白白白    时间: 2016-9-13 12:50
int x[3] = {1, 2, 3},   虚拟机使根据[3] 或{1,2,3}就 可以确定长度了,但两个一起用,虚拟机不知道是用[3]还是{1,2,3}来确认长度,
作者: loveimust    时间: 2016-9-13 13:01
数组初始化分静态和动态两种方法,楼主的是将两种混起来用,这种方式在java中是不允许的,只能用一种方法
int[] a = {0,1,2}; 这种初始化的数组三个元素值分别为a[0] = 0 ,a[1] =1 ,a[2] = 2 ,
另外一种
int[] a = new int[3];   定义数组的长度为3,其中的3个元素默认值a[0] = 0 ,a[1] =0 ,a[2] = 0 ,
int类型的默认值是0, 看你选哪种方式了




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