数组—植物大战僵尸

数组是个什么玩意?有什么用?
书上理论概不解释,以 植物大战僵尸 为例,没玩过的,建议退出,下载一个,玩一玩再来。玩过的以下这个界面应该不陌生,从一堆植物中选十个植物抵御僵尸,可你想过每种植物对应的价格怎么存储的吗?难道是 int 坚果 = 50,int 太阳花 = 100 ,int 寒冰射手 = 175… 一共十个,看起来还好,但是如果是一百个呢?定义完人也没了。所以,对于这种一次性存放多个数据的情况,数组就是一个不错的选择,它可以一次性存放多个变量,十个变量直接放于一个数组,一个字”爽“。在这里插入图片描述

这玩意怎么用?

  • 先说一下数组的定义格式:数据类型 变量名[数组长度] = { 元素0,元素1,元素2... };
    不理解没关系,再返回头看例子,上述例子中所有的植物对应的价格都为整数所以设置的类型为 int ,一共十种植物则数组长度为10,你也可以写11,12,13… 但是那样会浪费空间。至于变量名,做到见名知意就行,这里就叫他plants_price,即植物的价格。从左往右依次对应不同植物的价格,如:坚果在第一个位置,所以第一个数为 50,向日葵在第二个位置,所以第二个数为 50…
    定义后的数组为:int plants_price[10]={ 50, 50, 175, 150, 200, 125, 50, 325, 175, 125 }
    说到数组,不可避免的就是 下标 ,怎么理解呢?就好比是你去肯德基买汉堡炸鸡,服务员小姐姐给你的编号,放在这里,就是数组给坚果的编号为 0 ,what ???为什么不是 1 ,啊额,我还是个孩子,我也不晓得为什么非得从 0 开始,不过人家就是怎么规定的,所以记住就行,同理,寒冰射手对应的下标为 2 ,火爆辣椒对应的下标为 5 … 所以如果你想输出火爆辣椒的价格,输出语句就是:printf("火爆辣椒的价格 = %d\n",plants_price[5]);在这里插入图片描述
  • 如果想输出整个数组,怎么办?难道是 printf("%d",plants_price[10]) 在这里插入图片描述
  • 很明显,大漏特no,那怎么办?用 遍历 ,说白了就是用循环一个一个给他弄出来,这就涉及到了 for 循环,如果你不知道什么是 for 循环,那我建议你退出,先把 for 循环 看了,看了的直接看下图,显而易见,这次的结果没有问题。在这里插入图片描述
    思考一些问题:
  1. 上诉例子,十种植物对应十个下标 0~9 ,假设我们输出:printf("%d\n", plants_price[10]);,很明显 10 已经超出范围,那会输出什么?可以看到不知道输出了什么乱起八糟的玩意,就像是老师听写你单词,不会写就瞎编凑数,计算机也一个德行,想糊弄过关。在这里插入图片描述
  2. 现在将数组长度从10改为15,那么对应的下标为 0~14 再次输出:printf("%d\n", plants_price[10]);,那结果是什么?结果是0,没有就是没有,不会就是不会,是个好孩子,可以理解,毕竟没有瞎编。在这里插入图片描述
  3. 再用遍历总结看一下,发现 0-9 号元素依次都是对应我们所定义过的价格,10-14 号元素没定义过但是在下标范围之内所以都是 0 ,15-19 号元素都是乱七八糟的东西,说白了没有就编,想摸鱼。在这里插入图片描述
  4. 小结:如果你要输出一个数组中没有定义的元素且它的下标不超过 数组长度-1,则一律输出 0 ,但是如果下标超过了 数组长度-1,则会输出乱七八糟的东西,就好比你做马原,不会写怎么办?瞎编呗,凑字数呗,这里也是,每次乱输出一堆,不知道是什么玩意。

总结

  • 数组的定义格式:数据类型 变量名[数组长度] = { 元素0,元素1,元素2... };
  • 数组中单个元素的输出:printf("%x",变量名[对应下标]); ,其中 % 后面的要依据具体的类型而定,比如数组中存储为 int 类型,那么就用 &d,其余的同理。
  • 数组中所有元素的输出:遍历,说白了就是 for 循环
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

头疼小宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值