Python不用事先宣告阵列大小,但C语言中就要先宣告才能使用,这让我产生疑惑。
【大纲】
前言为什么c语言不能直接增加总结【前言】
有多少人用餐入座前要先讲好。
临时要加人的话需要重新入座。
Python:去隔壁桌拿张椅子就可以
VBA:要重新入座
C语言:重新入座+1
【为什么C语言不能直接增加】
「阵列一开始就要宣告大小」,
这句话让人感到茫然,
因为Python没有这个问题(大概是小精灵在帮忙)。
VBA有看过同时使用Dim
和ReDim
,
那时候觉得多此一举,
只用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点前发文,结果还是超过。
感谢拨冗阅读,有误欢迎指教。