java数组与C/C++数组的区别与内在联系。
========
该部分属于转载:
- java的数组是对象;c的数组是数据结构。
- java的数组声明的时候不能包含数组的大小,只能在新建对象的时候指定数组大小;c的数组可以在声明的时候包含数组大小。
//
java code
int array[ 10 ]; // illegal!!!
int array[] = new int [ 10 ]; // legal
// c code
int array[ 10 ]; // legal;
int array[ 10 ]; // illegal!!!
int array[] = new int [ 10 ]; // legal
// c code
int array[ 10 ]; // legal;
- 新建基本数据类型的java数组的时候,无论在哪里新建,都具有初始值;c的数组仅当在全局变量和静态变量的情况下才有初始值,局部非静态变量没有初始值。
- java的数组在声明的时候,[]可以在变量的左边或者右边,可以空格也可以不空格;c的数组在声明的时候[]只能在变量的右边。
//
java code
int array[] = new int [ 3 ]; // legal;
int [] array = new int [ 3 ]; // legal;
int []array = new int [ 3 ]; // legal;
// c code
int [ 12 ] array; // illegal
int array[ 12 ]; // legal
int array [ 12 ]; // legal
int array[] = new int [ 3 ]; // legal;
int [] array = new int [ 3 ]; // legal;
int []array = new int [ 3 ]; // legal;
// c code
int [ 12 ] array; // illegal
int array[ 12 ]; // legal
int array [ 12 ]; // legal
============
该部分是自己的总结:
Java数组属于对象
<span style="background-color: rgb(255, 255, 255);">byte[] command; //定义了一个数组对象引用</span>
该引用还没有指向任何数组对象,所以此使用command进行读写操作时,会报错。
而对于C语言
<span style="background-color: rgb(255, 255, 255);">byte command[10];</span>
就是定义了一个数组,即使没有赋初值,依然可以使用而不会报错。但是,我们知道一个数组就代表一块内存,使用未初始化的数组就相当于使用一块未初始化的内存,取出的数据时不确定的,这种情况在编程过程中是应当避免的。而Java就是为避免出现这种情况,所以在新建一个数组对象引用时,会默认初始化为null,一旦Java看到null,就会提示出错,提高了程序的安全性。