资料结构(三)C语言要先宣告阵列大小

Python不用事先宣告阵列大小,但C语言中就要先宣告才能使用,这让我产生疑惑。

【大纲】

前言为什么c语言不能直接增加总结

【前言】

有多少人用餐入座前要先讲好。
临时要加人的话需要重新入座。

http://img2.58codes.com/2024/2009191092v4VhHyPS.jpg

Python:去隔壁桌拿张椅子就可以
VBA:要重新入座
C语言:重新入座+1


【为什么C语言不能直接增加】

「阵列一开始就要宣告大小」,
这句话让人感到茫然,
因为Python没有这个问题(大概是小精灵在帮忙)。

VBA有看过同时使用DimReDim
那时候觉得多此一举,
只用Dim宣告大小不就好了。
现在才明白为什么

在阵列满载情况下新增1个元素,
以下为三个语言作法。

Python

list = [2,3]list.append(5)

VBA

Dim arr(1) As Longarr = array(2,3)ReDim arr(2)arr(2) = 5

C语言

#include <stdio.h>int main(){    int arr[2];    arr[0] = 2;    arr[1] = 3;    int newarr[3];    for(int ari = 0;ari < 2;++ari){    newarr[ari] = arr[ari];    }    newarr[2] = 3;    return 0;}

c语言阵列不够放是一件麻烦事,
但链结串列可以解决这个问题,
直接加节点。


【总结】

读资料结构才有机会学到「阵列是需要连续记忆体空间」,
因为要确认阵列大小,
才知道要分配多少记忆体空间。

题外话,推荐VBA阵列教学这是纯英文教学写得很深入,
很适合进阶学习。

原本想赶12点前发文,结果还是超过。
感谢拨冗阅读,有误欢迎指教。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章