array类型是什么

哎哟,说到数组,这玩意儿在编程里就像咱日常用的抽屉一样,每个抽屉放一样东西,整齐划一。
我混迹问答论坛这么多年,见过不少新手一上来就问数组啥的,我就得给他们细细道来。

说真的,数组这东西,有序性是它的灵魂。
就像咱家书架上摆的书,从上到下,从左到右,都是有顺序的。
在数组里,每个元素就像书架上的一本书,都有一个编号,这个编号就是索引。
你想要哪本书,直接按编号找,多快!比如C语言里,int arr[1 0];,这就是一个有1 0个整数的数组,每个整数就像书架上的书,编号从0到9
类型一致性嘛,这就好比咱家抽屉里不能放苹果和橘子,都得是水果。
在数组里,所有的元素都是同一种类型,比如都是整数、浮点数或者字符,这样操作起来才方便,不会出啥乱子。

固定大小,这就好比咱家抽屉,一开始定做了几个,后来想加个新的,对不起,得重新做。
在C语言里,一旦你定义了数组的大小,比如int arr[1 0];,那它就只能有1 0个元素,不能多了,也不能少了。

再说说动态数组,这就好比咱家抽屉,可以根据需要随时增加或减少。
C++里的std::vector,Java里的ArrayList,都是这样的。
你想加个元素,直接加,想减个元素,直接减,灵活得很。

多维数组,这就好比咱家书架,有上下两层,每层又分左右。
C语言里的int arr[3 ][4 ];,就是一个3 行4 列的二维数组,可以用来表示矩阵或者表格。

最后,异构数组,这就好比咱家抽屉,每个抽屉里可以放不同种类的物品。
C语言里的typedef struct{int a; float b; char c;} MyStruct; MyStruct arr[1 0];,这就是一个包含1 0个MyStruct结构体的数组,每个结构体里可以有不同的数据类型。

总之,数组这东西,是编程里基础中的基础,用得好,能让你编程效率大大提高。

在vfp 中,同一数组的各元素必为同一类型。

记得上次帮小李整理仓库,他发现一堆零件混在一起,结果发现其实每个盒子都标着种类。
他问我为啥不一开始分好,我说分类是好事,但有时候混着用也有混着用的好处。
就像vfp里的数组,元素类型不一样,有时候也挺方便的。
比如我上次写个小程序,一个数组存数字也存文字,最后用的时候判断一下类型,还真省事。

不过话说回来,默认工作目录这个习惯真是个好习惯。
就像我平时写稿子,总在同一个文件夹里弄,找东西方便,也不容易乱。
要是文件到处乱放,有时候还真得像找小李那堆零件一样,得花时间归类。
哎,这个道理用在小李身上倒是对了,用在他工作上就是不一样了。

简述数组是什么

数组,就是按顺序存东西的盒子,每个格子放一样东西,找东西快。

元素类型,就是盒子里的东西都是一样的。

索引,就像盒子的门牌号,从0开始。

多维数组,就像多层盒子,每层放不同东西。

操作,就是盒子里的东西可以增删改查。

你自己掂量。

认识数组类型

哎,别跟我扯这些理论,听我讲讲真事儿。

那年我还在上海,公司有个小项目,做库存管理。
需求是得存一堆商品信息,不能一个一个类定义啊,太麻烦。
领导就让我用数组试试。

我寻思着,商品信息就那几样,品牌、型号、价格、库存数量。
行啊,定义个类叫 Product,然后声明个 Product[] 不就行了。
结果呢?好家伙,各种坑。

首先是大小问题。
数组的大小得定死,比如 Product[] products = new Product[1 00]; 你只能存1 00个商品信息。
可实际呢,有时候就5 0个,有时候可能1 2 0个。
硬塞不行,不塞浪费空间。
后来我就用 ArrayList 换掉了,灵活多了。

再说了,多维数组那个更头疼。
需求要存商品分类,每个分类下面还有子分类,子分类里再存商品。
我一开始就想着 Product[][],结果发现根本不对。
Java里二维数组是个啥玩意儿,一层一层套,像啥玩意儿啊。
最后还是改用 List>,虽然麻烦点,但好歹能理解。

还有引用数组,那会儿我们有个 User[] users;,然后 users[0] = new User();。
结果有时候 users 值为 null,访问还崩溃。
我就纳闷了,为啥 null 还能访问。
后来才知道,数组里的每个槽位是 null,访问 users[0].name 就直接 NullPointerException。
得先判断 users[i] != null 再用。

所以啊,数组这玩意儿,用好了是神器,用不好那就是坑。
我这1 0年踩的坑,有一半都跟数组有关。
你要是真要用,先想清楚,别像我当年那么傻乎乎的。