多种语言中数组的异同

C语言的数组

type arrayName [ arraySize ];
double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};
double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};

  C 语言的数组数据结构可以存储一个固定大小的相同类型元素的顺序集合,用来存储一系列数据,但它往往被认为是一系列相同类型的变量;其中数组元素可以是数组,这样就能构建多维数组。大小固定和储存类型单一是它的一个短板。
  比如hui[0]、hui[1]、…、hui[99] ,数组中的特定元素可以通过数组名称加索引进行访问。同时,所有的数组都是由连续的内存位置组成,也可以通过指针来访问数组,数组名是一个指向数组中第一个元素的常量指针,元素的地址即首地址加上下标乘以元素的大小来确定元素的地址位置。这又使c语言的数组访问更加灵活(复杂

python的数组

list1 = ['Google', 'Runoob', 1997, 2000];
list2 = [1, 2, 3, 4, 5 ];
list3 = ["a", "b", "c", "d"];

  python没有数组的概念,取而代之的是列表、元组、集合等。除列表外我们可以把其他理解为特殊的有限制的列表。这里我就把列表理解成pyhon的数组吧。序列是Python中最基本的数据结构。序列中的每个元素同C语言一样都会被分配一个数字 - 它的索引,第一个索引是0,第二个索引是1,依此类推。
  Python有6个序列的内置类型,但最常见的是列表和元组。与c语言不同的是,python的数组元素是可以有多种类型的结构,同时初始化列表也不可以不限制数组的大小,可扩充。
  此外序列都可以进行的操作包括索引,切片,加,乘,检查成员,对字符串的操作相比c语言可谓非常方便。此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。在个人感觉上python在操作和编写上的确非常方便,但代价可能就是代码运行速度的大大折扣。

java的数组

dataType[] arrayRefVar;   // 首选的方法
dataType arrayRefVar[]; //c式

  java 语言中提供的数组是用来存储固定大小的同类型元素。与c相似,你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number0,number1,…,number99;在内存空间中划出一串连续的空间,此长度不可改变不可追加。
  java特性大部分与c语言相似。但也存在一些不同点:
  在C语言中:type arrayName[常量表达式] 例如:int a[5] ;是声明一个整形数组a,长度为5,在内存所引起的操作,为数组分配一片连续的内存空间存放这5个数组,数组名便是首地址,故没有开创一个内存存放数组名。
  在java中:声明一个整形数组,数组名表示一个一个引用地址变量,所以[]中无需指明数组个数,也不能访问他的任何元素。我们必须为他的分配内存空间,也就是 int a[] = new int[5]。

JavaScript的数组

var mycars=new Array()
mycars[0]="Saab"
mycars[1]="Volvo"
mycars[2]="BMW"

  JavaScript的数组的声明格式与java形似,单特性上更像Python,甚至更加自由没有限制。大小无限制,元素类型无限制,可扩充。同时,提供多种对象方法对数组进行操作。

PHP的数组

<?php
$array = array(
    "foo" => "bar",
    "bar" => "foo",
);

// 自 PHP 5.4 起
$array = [
    "foo" => "bar",
    "bar" => "foo",
];
?>

可以用 array() 语言结构来新建一个数组。它接受任意数量用逗号分隔的 键(key) => 值(value)对。
  PHP 中的数组实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合,栈,队列以及更多可能性。由于数组元素的值也可以是另一个数组,树形结构和多维数组也是允许的。(PHP是我没学习过的语言,以上内容和理解均来自互联网)


文章部分资料来源于维基百科以及博客:
https://blog.csdn.net/jcsyl_gsc/article/details/49853435
https://www.runoob.com/
https://www.php.net/manual/zh/language.types.array.php

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值