java中数组的定义为什么和c等语言不一样,不可以表明数组长度?

我没有说清楚,不好意思,我说的是为什么不可以int i[10]这样!

java中声明与初始化数组的方式与c不同,原因其实很简单,java是一个纯粹的面向对象语言,而C不是。在java中所数组也是一个对象,也需要通过new来创建。

在java中初始化时既可以规定数组的大小,也可以分被初始化数组中的每一个元素。

用一维数组举例:

声明一个int型一维数组

int [] array;

初始化这个数组

array = new int[6];  //方式一,仅规定数组的大小
array = new int [] {1,2,3,4,5}; //方式二,初始化数组中的每个元素

温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-06-23
LZ是不是想这样问?
为什么要写成这样:int[] a=new int[10];
而不是写成这样:int[10] a=new int[10]或int a[10]=new int[10];

因为int[] a或int a[]仅仅是声明a是一个int型数组变量(也就是说可以用它来指向一个int型数组),至于长度是多少我们可以把它忽略.

数组元素的个数实际上是在利用new创建数组对象时而不是在声明时指定,而且该长度一旦指定就不能更改

这种声明时不指定长度的好处在于:我们可以在任何时候用a去指向任意一个不同长度的新数组

即a可以
a=new int[20];
也可以
a=new int[30]

注意新建的数组类型必须是int型的一维数组,这是在声明时就指定的了

说简单一点你可以把变量a类比为c语言指向一维数组的指针变量

声明时int[] a与int a[]两种写法是等价的
第2个回答  2009-06-18
Java里面 数组也是对象,对象只能通过new来分配空间,所以和C语言不一样。

比如:
int [10] array ;是不能编译的。只能写
int [] array = new int [10] ;

我最开始写Java的时候也有一样的困惑,数组居然也要new呵呵。
第3个回答  2009-06-18
JAVA是面向对象的语言,很多情况下都是采用“类”、“对象”等概念来描述事物。

JAVA里面的数组是规定好了的类,定义新数组时,就需要建立对应类的对象。

有两种定义方法,但实质是一样的:
int[] a=new int[12];

int a[]=new int[12];
后面的数字不加时,表示定义动态数组,长度据使用时定。
第4个回答  2009-06-18
可以啊

string[] a = new string[10];
string[] a = {"","",""......};

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网