不同语言中一维数组的定义方式

定义。在谭浩强的《 C程序设计(第二版)》里 (P122)是:数组是有序数据的集合。在钱能的《 C++程序设计教程》里 (P120)是:数组是若干同类型的变量组成的集合。在《Java语言导学 (第三版,中文)》里 (P132)是:数组是一种保存相同类型的多个值的结构。根据我的使用体会来看,数组是一个集合,元素类型相同,无序。谭书中所谓有序应该是指数据在数组中存放的顺序,而非这些数据之间逻辑的顺序关系吧。
 
先关注这团一维数组相关的糨糊,C和CPP和Java到底允许哪些方式?以下表去做验证。
分这几个情况分别验证下:完整、前空、中空、后空、间隔。
 
 定义方式 CCPPJava 
 int a[ ]={1, 2, 3, 4, 5} √
 int a[5]={1, 2, 3, 4, 5} √×
 int a[ ]={ , , 3, 4, 5} ×× × 
 int a[5]={ , , 3, 4, 5} ××× 
 int a[ ]={1, , 3, 4, 5} ×× ×
 int a[5]={1, , 3, 4, 5} ×× × 
 int a[ ]={1, 2, 3, 4, } √ 随机数√ 随机数 编译通过,运行时异常
 int a[5]={1, 2, 3, 4, } √ 0√ 0  ×
 int a[ ]={1, , 3, , 5} × ××
 int a[5]={1, , 3, , 5} ××  ×
 
因为间隔的情况必然包括前空或中空的情况,而前空和中空的情况都是不允许的,故不用验证就能得出间隔是不允许的。
 
这个实验仅考察了一维整形数组的情况,数组定义方式并不爽目,int 数组的类型应该写作 int[] 更好 。多维的情况还没考察,关于Java的static情况也没有考察。已知Java能定义多维不等长的数组。关于Collection和Vector等内容等日后有时间再说。

另外,C编译后的执行文件17K,而CPP编译后的执行文件是535K,Java编译后的class文件只有4K。
 
PS the version of the Compilers are follows:
C and CPP: gcc version 3.3.1 (mingw special 20030804-1)
JDK: 1.5.0_04
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值