Java数组与C/C++数组

本文对比了Java与C语言中数组的实现方式及其特性。Java数组作为对象存在,声明时不指定大小,创建时自动初始化;C语言数组为数据结构,在声明时即确定大小,局部变量不初始化时内容不可预测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;

  • 新建基本数据类型的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
============
该部分是自己的总结:

 

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,就会提示出错,提高了程序的安全性。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值