首页 新闻 会员 周边 捐助

java 数组 初始化赋值的问题

0
悬赏园豆:30 [已解决问题] 解决于 2013-05-30 12:02

int[] a=null;

a={1,2,3};

为什么不对?

zl_说不得的主页 zl_说不得 | 初学一级 | 园豆:33
提问于:2013-05-29 21:41
< >
分享
最佳答案
2
  • 静态初始化:int a[]={1,2,3}
  • 动态初始化:int a[]; a = new int[3] ; a[0] = 1;a[1] = 2;a[2]=3;
  • 默认初始化: int a [] = new int [5] ; System.out.println("" + a[3]) ;

静态初始化是程序语言的开发者,提供的一种方便的初始化数组的方式。动态初始化是每种语言都必须要有的,因为数组的元素值有动态改变的需求。默认初始化数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐式初始化。不只是数据,任何没有初始化的变量,如果我们直接用的话发现它里面存的是有值的(一般为随机的,也有些特定类型有默认的值,比如boolean的为false)

参考:http://developer.51cto.com/art/200906/128274.htm

收获园豆:30
g.hui | 初学一级 |园豆:15 | 2013-05-29 22:19

感谢你的回复,清楚了不少.

  "一般是随机的"不理解,能也举个例子吗?

zl_说不得 | 园豆:33 (初学一级) | 2013-05-29 23:31

@zl_说不得: int i;System.out.println("i:"+i);

g.hui | 园豆:15 (初学一级) | 2013-05-29 23:55

@irian: 这样写,会有未初始化的错误.

zl_说不得 | 园豆:33 (初学一级) | 2013-05-30 09:23

@zl_说不得: 嗯,这应该是语言进化的结果,记得以前在用vc 6.0写c程序时,没有初始化直接用并不会提示出错,而会打印出一个随机值。你只要知道没有初始化的变量里面也是有值的就行了

g.hui | 园豆:15 (初学一级) | 2013-05-30 11:33

@irian: 从你给的参考链接里学到不少,再次谢谢你.

zl_说不得 | 园豆:33 (初学一级) | 2013-05-30 12:02
其他回答(2)
0

int a[]={1,2,3}

悟了 | 园豆:521 (小虾三级) | 2013-05-29 21:47

这是静态定义,数组定义为什么要区分动态定义和静态定义呢?

支持(0) 反对(0) zl_说不得 | 园豆:33 (初学一级) | 2013-05-29 21:59
0

int a=null; 这是在声明一个数字?

Beyond-bit | 园豆:2885 (老鸟四级) | 2013-05-29 22:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册