数据结构之C语言的数组与python列表的比较

本文探讨了C语言中数组的静态特性,强调其容量固定且不支持动态扩展,不允许插入或删除元素,同时也说明了数组只能存放相同类型数据的事实。相比之下,Python的列表是动态的,允许增删改元素,且能容纳不同类型的元素。文章通过实例解释了两种语言在内存管理和数据存取上的差异。
摘要由CSDN通过智能技术生成

C语言的数组与python列表的比较

C语言中的数组特点

(1)在C语言中,数组一旦被定义后,占用的内存空间就是固定的,容量就是不可改变的,既不能在任何位置插入元素,也不能在任何位置删除元素,只能读取和修改元素,我们将这样的数组称为静态数组。反过来说,如果数组在定义后可以改变容量,允许在任意位置插入或者删除元素,那么这样的数组称为动态数组。

1、PHP、JavaScript 等解释型的脚本语言一般都支持动态数组,而 C、C++ 等编译型的语言一般不支持动态数组。

2、总之,C语言中的数组是静态的,一旦定义后长度就不能改变了,不要尝试去插入或删除元素。

(2)C语言中的数组不能存放不同类型的数据,这种特性是由计算机的存储机制与读取决定的。

详细的具体实现内容如下:
以32位系统为例,一个整数的存储大小为4字节,C语言定义一个数组a,数组中都是整数,则每个整数的存储占据计算机内存的4个字节。假如第一个整数的开始存储位置是100,则第二个整数的开始存储位置是104,以此类推。当读取数组a的第三个整数时,a[2],此时计算机计算存储位置是数组a开始的100位,100+4*2=108,读取108存储位置的4字节数据。同理,相同的浮点数也可以这样读取。

Python中的列表结构

(1)Python中的列表是动态列表,可以增加元素,删除元素,更改元素的内容。当创建一个列表时,列表的长度已经确定,增加元素时,把列表中的内容复制过来,同时开辟一个比原来更多的空间,不局限于增加几个元素,多开辟几个空间,也可能4个位开辟出8个位置的。
(2)Python列表可以同时容纳不同类型的数据,但此时在底层存储时,列表b的开始存储位置是100,列表中的内容可变成整数类型的类似于指针的数据,假如100位置数据是888,则读取数据时指向888位置的数据。即使是不同的数据类型都可以用一个整数替代。获取列表第三个数据,b[2],计算机首先得到列表的存储头部100,然后100+4*2=108,取出108位置的4字节数据,然后根据指示的存储位置指向具体数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值