00:00
会把这个冒牌去每天都会重新给你讲一遍两遍的是不是。啊,然后这里面我们这个把第一大块学完了,第一大块就是数组这块,那主要把如果把这个一位数组学懂的情况下,这个二位数组也很也很简单。那这里面给大家画一个二维数组,一个模型是什么样的?比如说再打开一个新建文件夹。然后在选择上把这个放大一下啊,放大一下,整体放大一下。对,有60宽大应该行,不用不用不用,那我这里面比如是什么,比如说我这里面要存十名学生的三门成绩,语数外成绩,那怎么存呢?比如说这里面写个什么,写个这个叫啊语文,然后这叫。啊,都知道这个三门成绩还有啥外语吧,呃英语吧,啊语数外啊英语,那这里面存的是什么?存的是成绩,那存比如说存十名学生就是呃,100分是99分,然后是88分给学生偏科是不是,然后下一个是50,然后是50,这个就不偏科了是吧?啊50,那这里面比如说怎么呢?我十名学生情况下应该怎么着,应该是这是第一名学生成绩是不是啊,那这里面然后是第二名学生成绩,然后第三名学生成绩,第四名学生成绩,第五第六第七第八第九第十是不是就都表示出来了,那这里面我们平时学的数组情况都是都是怎么的,都是一位数组情况,就是第一个什么,第一个这个数据是不是啊,就是数组什么就是零,然后这数组一对应的数据,这是二对应数据是不是,那这里面我们有个横向了,然后还有什么,还有个纵向就相当于什么,相当于我们摆砖一样,就怎么的就是。
01:33
一排砖从左到右这是什么?这是个一位数组是不是,我再挪高了就变成什么了?二位数组是不是?那这在二位数组当中延伸三位数怎么的?这宽了螺是不是就相当于立体一样,是不是就装水的那个是什么,是比如说这里面这个是一个什么地板砖,那在这里面每个都怎么弄这么高,这是一个什么立体了了,这是什么?就是咱们学的是点线面的一个过程,是不是,呃这是这是叫点线面吗?还是叫什么。点线面是平面是不是,然后是立方体,就立立那个啥了吧?啊,这里面可以什么点就相当于我们一个变量,是不是可以相当于一个点呢?是不是线就相当于什么,相当于一个一位数组是不是就线呢?面的情况下是不是相当一个二维数组啊,三维数组就可以相当于什么,相当于一个立方体了,是不是,那这样情况下就构成我们这个三维模型了,那在我们这个三维空间里能表示四维四维的空间模型吗?
02:22
表示不了吧,应该是啊,就是再加上什么,就是如果思维模型的话,就是,呃,加上一个实践线吧,是不是,那实践线就是三维空间模拟不了了是不是,那这是我们扯远了是吧?是,但是我们已经怎么样通过这个我们之前熟知的一些东西,可以将我们这个数组啊,或者是这个20数组变成一个我们生活中知道的东西,那这里面就是什么成三一个学生三门成绩是不是?对应这个什么呀?一个二位数组可以拆开为多少个一位数组啊?比如说这里面有十名学生,那我是不是可以拆开十个呀?每个一位数组里面是不是又有三个什么元素,是不是,那这里面比如说一个二维数组是什么?是一个是。
03:00
十名学生。三门成绩,那最后得到这个数组大小应该多大呀?30个这个元素大小是不是,然后再乘以什么,再乘以你的数据类型,比如说这里面是int类型,再乘以个四,那这个才是什么,它的整个一个大小能明白吧?那我看一下二维数组应该是如何去定义去使用呢?看一下。右击添加一个新建项。名酒。二维数组角C。零八。井号一,然后这里面我们写下这个二位数组定义啊。二维数组。定义。那首先也是什么,也是一个数据类型,比如说这个是整形大加类型的,是不是都是同样的数据类型。
04:03
In的位型,然后这里面什么,比如说我定义为数组情况,这里面后面加上一个什么,一个括号,这里面写上具体的元素,写个三,那代表什么,代表是三个人或三分,三分成绩是不是都可以啊?那比如二十十五情况下再怎么再加括号,比如这里面加一个什么,加一个十就是什么,十名学生三门成绩是不是,那这里面总共共有多少个,你看我们查一下从从哪开始啊,这个数组如果定义完成,应该是AR。零到零是不是哪个,是不是第一个啊,然后怎么的是呃。A0。一那是哪个是它横向走了吧,那是不是应该是怎么,比如说这是AR00是这个AR01是不是这个,然后零二是不是这个顺序向下走,这是怎么样,第一排到哪结束啊到这个二结束看一下。等一下啊,是。A0。二就结束了,为什么就结束了呢?我这里面几个元素啊,三个元素下边是从哪到哪啊,是从零到3.1是不是二啊啊3.1是二,那怎么的,这是第一个怎么完事了吧,是不是第一行。
05:12
结构完事了,是从哪到从这到这是吧,第二行起的时候就是这个应该是从零,这个该变成几了一了吧,啊20组就是怎么往高起了,这是一一的情况下是相当于怎么我把这个给它放在一起啊,这样可能容易让大家看一下。这里面表表表示是不是都是一元素啊,在下面是AR11后面跟的是几啊,是不是看下这是一对应的是这是零,这对应的是也是零啊,那我可以给这个再把这个东西给它干掉啊,右击清空内容。内容这里面什么是012,那在这里面右击再插入一个,右击插入一个,那这里面什么是。0123,如果你能看到表格情况是不是对应的,这这个具体是哪个,是不是应该知道啊,这个对应的是先是横向的,然后是纵向的,是不是,是零零是不是,那这个应该是什么一零是不是,那对应这个是什么一二是不是,那再写个成向,比如说这个六十六六十六六十六,诶好像这个。
06:11
这是三,这是二吧,二这是三,这是四,那对应的这个数据,比方是二零是不是对应是哪个,对应是这个是不是就是横向找一下,纵向找一下,然后就能确定是不是一个数啊,就相当于我们这个坐标点一样,是不是在地图上一个坐标点,经度和纬度能确定一个点,就是我们这个什么呀,竖组也是一样的,呃,一个横坐一个横的这个什么横的这个。横的这个标志在一个竖的标志是不是能确定一个一个数组对应的这个值啊,就是我们二元数组啊,啊,这里面可以是相当于什么,这个是二一,这个是二二对应的是不是,嗯,横向纵向坐标都不能超过,什么都不能超过这个数组元素的个数,横向是多少个,横向是十个,那这里面就是零到九是不是,这个是三就是零到二是不是啊这样的过程。这是我们一个20数组,那20数组情况咱们写个小一点啊,比如写个三三,那应该是什么,它的所有数组元素就应该是什么,A2呃,是。
07:08
AR0,然后是AR,这是AR。一一,然后是A。二啊,就是这样的一个过程,然后下面是什么,下面是。AR是二零啊,然后是A21,然后是AR22,那是不是到这为止,就我怎么的,我把这个整呃整个的什么整个的一个数组元素全部怎么手写了一遍嘛,是不是,那这里面多少个是三乘三,应该是九个吧,是不是,那对应的是不是这个里面表示了这个九个元素是从零零到什么到二加下来是这个是九九个吧,123456789是不是,那我们看一下这里面这个数据和我们这个一位数组里面数据是不是都一样的,那这里面三代表什么,有几行,是不是三行这个呢?三列是不是对应的是什么九个值啊,就可以找到三乘三。
08:10
那我们再看一下什么,再看一下这个里面的元素大小,就元素个数。写一下PTF,如果直接写个什么,直接写个。呃,二维数组大小冒号百分号。D,然后是斜杠N逗号一个size of。Set off a a,这里面就是什么,就是一个二位数组的什么,二位数组的这个名称了吧,不再是个一位数组名称,那我们看一下这个结果大小为多少啊,看一下调试卡尔执行。然后看一下得到结果为多少,是36,那36我们知道这里面有多少个元素啊,是不是这个是九个元素,九个元素再乘以四是不是就36啊啊,那我们可以画图来表示一下我们这个三乘三这个元素的一个样式啊,在我们存的格式。
09:07
假如说这是我们这个一个内存是不是啊,然后这里面画一下啊,是第一行,然后是。啊,第二行这里面是第一列,然后是。第二列,其实它的内存我给你切一下,把它切一下。啊,必须精准切开。好,可以怎么的可以给他是不是拿拿到这儿来啊,那拿这这俩是挨着的啊,把这个怎么的也拿过来,嗯,少少一点,少留一点,哎呀。少留点。好挪到这来,这他们的他们的什么,他们这个数下边是连接的,那我看一下是哪些连接到哪些的后面了,看一下这里面什么,这里面我们写一下它的下边啊,这些是这个是。这应该是零零吧,啊零零这是第一个位置,下一个呢,横向的应该是怎么是。啊,这里面是零。一下个什么,下一个是,嗯,是零。
10:04
二对应的这值到下面呢?变成什么了?它换成一行了,是变成几了是一?零,然后到下一个呢,到下一个是。是一。一,然后再往下排就是什么一二了吧,嗯。是一。二这个呢,这应该是。二零啊,注意一下,这是从零开始的啊,从零然后是212,咱就不写了,是不是,那比如说一行和一行差多少个呢?王慧呀,这是什么?这是我们这个第一行的内容和第二行差多少个大小啊。下标就是那部分内存中的什么,内存中的这个地址会差多少个,12个,我们怎么求出来的呢?是不是就是是。二维数组二。为数组D。一行和第二行相差多少个大小呢?是不是相差一行大小啊,一行多少个元素啊,是三个三乘以四是相差12个内存地址下标,那是不是这样,这是我们的,呃,写的嘛,和第二行。
11:11
第二行相差一行,这一行情况下得根据元素有关,跟元素有关,你要一个元素,那就相差一,如果十个元素相差十,是不是相差一行大小,这个这个大小是怎么求出来,是不是咱知道了,那我们求求出来第一个什么,第一个这个值为什么为这个是。整个的一个20组是这个什么?呃,AR,然后是它这个名称就可以,那我们再求出来另外一个看一下这是多少啊,PRPF,然后打印这个值,我先不写这个前缀啊,看一下大家能不能知道是什么东西啊,比如说我这样写。Set off a,然后是。一或者AR0这个代表啥意思啊?嗯,我们看一下啊,是这个是值为多少,先求出来这个值为多少啊,调试开始执行。
12:03
那显示大小为多少?显示大小为12啊,前面我说过一句话什么呀?你可以把一个二维数组理解为多个一位数组是不是?那前面是不是就可以相当于多个一位数组一样,因为后面每个都三个元素是不是?那这里面求出来这个值位多少?12是代表一行元素的大小,是不是就可以相当于理解为一个什么呀?二位数组中一个一位数组大小是多少个是这个是呃,12个大小是不是?然后再除以四是三是不是三个元素吧,那是。一行。一行。呃,二维数组中一行运数大小,二维数组中。一行来写了吧,一行元素大小。啊,是这个值,我们知道这结果是什么,这结果是30。36这结果为什么?12?那36除以12应该是什么了?
13:07
36除以12应该是什么?三行是不是?这里面求出了一行元素大小,然后这里面有几行是不是啊?这里面是下一个值就是什么,就是PTF。啊,是一行。哦,这里面这个应该是怎么样,这个是数组元素。这应该不叫大小,应该叫长度啊,是不是36个,这也不叫这这也不叫什么元素大小,叫元素长度是不是或一行长度啊,然后这个才是什么一行大小吧啊一行大小刚才说的刚才呃代码没问题,只是这个表示这个词有问题啊,是百分号D,然后是斜杠N,然后应该怎么求啊是CO。Size of,什么是AR?再除以一个size of。AR0,这求出来这个值称为什么呀?行是不是一行大小?呃,不是,是有多少行啊,这不应该是一行大小,是行数吧,应该是,嗯,行数。
14:08
行数,那我们看一下这个值为多少,调试开始执行。诶报错了,把这个关掉啊,我把这话注销掉,这个就不会报错了啊,为什么?因为这个这个system system是代表什么,暂停这个怎么程序没结束是不是啊,那如果说把这块去注销掉,注销掉之后这个遇到算代表程序结束了,所以说再开不会错误啊,但是你如果加上这句话再开就错了啊。调试开始执行。这里面行数是不是三行啊,那我们这里面也可以求什么,也可以求出这个叫行数还对应的是什么列数吧,啊列数应该怎么求呢。列数。代马蒂斜杠N。那应该怎么求啊,大家看一下应该怎么求,就是通过20数组里面。啊,你看一下同学都说了,是不是这个是size of,这是一,这是A0代表什么,一行是不是一行,然后每个每一行这个元素的这个大小是不是就是什么,就是这个是size of。
15:08
In的是不是就可以了吧,是不是代表就是什么,这每个元素这个大小是不是就可以了,就是它数据类型也可以,同样还有另外一种方式什么?另外一种方式就是这个是SFAR,零,然后是零是不是这样一个表示是啊,这二数组情况下就怎么多了一个维度了吧,多一个维度情换就多写一点内容是吧?二数字中这个代表什么一行是不是这个代表什么啊。一个大小是不是啊,一行再出一个大小,就是它有几行,呃,不是有几列了吧?啊几列啊,嗯,这个数学应该是如果学的懂情况下,应该是这个应该会了吧,是不是上行三列的一个大小是不是,那我改一下,比如说这改成什么?改成这个是四,这改成什么?这改成这个是五,那我看一下能求出来这个大小为多少啊,看一下调试开始执行。接下来长度为80,怎么计算呢?四乘五乘四是不是啊?四五二十乘四是80是不是?然后这个是数中一行的长度是四乘四为16是不是?然后除起来之后就是五行四列是不是?那我们要做循环的时候,那这里面需要怎么样?是不是也是五行四列的循环呢?那我需要得到俩值,一个什么?一个是行的值,一个是列的值,怎么求出来行的值啊?是整个数组再除以一个一行的值是求出来多少行,然后是整个呃一行的值,再除以一个元素,就求出来列的值是不是分别用在循环的两呃两两个里面来,一个是外层循环,什么是in t等于。
16:33
零,然后是I小于,什么小于这个值,把它复制过来是不是可以啊,这有多少行?然后是I加加,这是外层循环控制行,内层循环控制列,再写个循环不循环int。等于零接接要小于什么?小于有多少列是不是啊,小于多少列?然后是接加加,你不要觉得代码很长,你把它可以怎么提出一个一个变量,是不是就简单了,就像咱们上面这块提出个变量啊,这个循环和之前也是一样的,没有太多东西,那好,那这里面我需要怎么做,需要通过键盘录值了吧,啊可以去录一下值,通过这个SC录一下值。
17:16
往数组里面去写东西,百分号D,然后逗号,那这里面我录的时候应该录哪个值啊,是不是应该从零零到什么,最后最后一个是不是,那这里面什么是AR,然后是先写行,先写列。行是不是对应外层这行啊,那然后再写什么。再写一个列,那这里面同样还需要加一个什么。取地址符号,因为在二维数组中,这个才相当于什么,相当于一个变量一样存在着是吧?嗯,好,那我下这样情况下写的时候20个四五二十有点多,是不是咱们写一个二二和三这啥意思啊。两行三列,总共下来数据是六个是不是,那我们录入一下,录入完之后,那我们需要怎么样打印一下数据吧,嗯,打印数据。
18:04
打印数据情况,我从上面直接复制改哪个改这个吧,把这个怎么着,这前面改一下,P完贴后,然后是。百分号D斜杠N啊,为了大家方便大家看啊,这么写啊是D。百分号D。百分号D行。然后。嗯,代号D。列,那这里面应该怎么加,加俩值吧,然后这个值为多少,用冒号隔开,这里面应该是逗号I逗号接啊,这里面写逗号写错了啊呃,逗号I逗号接,然后后面是什么逗号这个具体的值,然后打印出来啊,你可以把这俩提出来,这个整个程序没有多难啊,看一下调试开始执行。啊,开始输入这个数据了吧?呃,看一下前面是对这个数据进行说明啊,比如说我要输入什么?输入数据是12A1空格二,空格三,那这里面相当于输一个数据,相当于输三个数据啊前面是不是跟大家说了,SC接收到空格代表什么?代表这个结束是不是,那我回收换行一下再写一个什么呀?三空格四空格五,呃,不是234是不是啊,一回车,那看这里面是不是把这个数值打印出来了吧?那看一下D0行零列,那这里面少了什么?少了个加一是不是?那少了加一啊,整体去掉加一零行零列,第一个值为一,然后第二值为二,第二值为第三个,呃,不是012对应的是123是不是,这个是也是012对应的是。
19:33
234是这样的一个结果,这是一个20数字,什么二数组的这个,呃,初始化和这个定义这块,那同样,那我们继续再往下写了。在写什么,去打印一下什么,打印一下这个是二维数组的一些地址,以及他们在内存中的一个存储关系,我写一下是。二维数组的内存模型。二。为数组的内存模型。
20:01
内存模型需要两个,第一个是它们的存储格式是什么样的,第二点就是他们内存地址相差多少,这两让大家看到这两点啊,首先我们先来看一下这个,呃,打印一下这个所有地址,再跟地址推出一下这个模型,其实这个模型我在这边已经给大家画完了吧,是不是啊,画完就这一次的内存存储模型,我们需要怎么样验证一下,那首先我先打印一个值看下关。学校是嗯。二。为数组的内存首地址,如果提到首地址的情况下,什么首地址?是不是应该这个数组名啊啊百分号P,我这里面打印什么,打印地址是不是斜杠N,然后逗号一个是。AR这是一个二数组的这个名称吧,它也作为首地址去使用啊,这是第一个第二个我再复制一下内存地址啊是什么呀,是。首行。地址代表是什么?代表是这个是A。
21:01
零。啊,你看一下我这个A0的情况下,如果不加什么,不加这样的符号,看能不能用啊,然后再写个什么,再写个是呃首行还有第二行。第二行。然后这里面是第二行地址,这是前三个,那我们再空格一下啊,再给他去打印点内容。是吗?是二维数组第二行已经完事了,是不是二维数组?首个。元素啊,首个元素地址。元素地址,那首绘元素应该什么是按的零零是不是首护地址啊,但你看这里面得需要加一个按的符号啊,取地址为啥?因为这是一个什么,这是一个变量是不是?这些都是什么?这些都是数组是不是,你甭管它是一位数组还是二位数组,是不是都是数组啊,数组的情况下,它可以直接通过什么,直接通过这个数组名它就代表什么,代表这个是数组的首地址了,知道吧。你看这个虽然是也是什么,这个虽然也是这个零,但是没写暗的,为什么这是代表第一行的那个数组名,可以这么理解吧,是不是,那好,这是第一个元素,然后再写什么D。
22:09
这第一个人做啊。对呀。呃,是首行,然后是第第二个元素地址,那同样这在什么D。三个元素壁纸是不是可以吧,嗯,然后再再再来一个什么,再来一个是。再来三个吧,嗯,就是然后是不再是手了,而是什么D。D。第二行。然后是第。第一个元素地址二行情况应该写一吧,是不是,然后这应该写什么?写这个是零第二行第一个元素,然后是第二行。嗯。第二行第几个元素,第一个一个元素地址。一这里面是一是不是,然后这里面什么,这里面应该是。
23:06
第三行手地址。哎呀。三行啊,这多行无所谓,把这删掉啊。然后是第几元素,这里面是如果三的情况下,应该是第三行的情况是二吧,然后是第二个元素也也是二吧,啊是不是,那我看地址差。呀。呃,第三行,我这里面三行能表示出来吗?表示不了是不是改一下啊,改一下三三的应该可以了吧。三三情况,第二个元素情况应该是三啊,不是二一吧,啊,这样情况就没问题了吧,第二。第二行第二行。呃,你说编号多少行编号有问题啊,41啊是啊,这里面是R1啊,刚才是复制过来忘改了吧,第二行首地址啊,缺个手。
24:08
手。手地址,那好,那我运行一下这个东西写的比较多啊,啊调试。开始执行。写数据了是123,然后是不用空格,然后是456。然后是789顺子,那我看一下这几个值啊,你看下这里面打印东西比较多啊,你先这个咱们之前那个案例打印东西,您可以先不用看啊,但是您可以看一下这对应的这个数据啊,就跟之前一样的,那我看一下这些地址啊,这跟地址有关的东西,首先什么?首先是内存首地址什么是。008FAA8,那看一下二位数组首地址和第一行这个地址怎么着一样的是吧?这里面这应该是二维数组内存的首个元素的地址就是什么,就是零零那个吧,就对应是哪个,对应是这个啊,它是不是也相同啊,所以说如果是你想表示二维数组首地址可以用什么数组名也可以用什么,就是第一行那个数组是吧?也可以用第一个元素,第一元素就是零零那个元素是吧,它们相同的,那咱们再往下看啊,第一行啊,这这俩是一样的,第一行第二行差多少个?
25:25
来来查一下。16个还是几个,12个,16个。八加42,嗯,是不是12个,这个八再加八是是往前进位了吧,是不是应该B了吧,是吧,那个八再加四是不是12个,那这里面有多少个元素,一行有多少个元素啊,三个是不是三乘四是12是不是一行和就是第一行和就是两行之间相隔的就是什么?这个是一行的元素个数是不是,咱们在这是不是已经给大家验证这个问题了吧?啊这是第一个问,这是验证这个问题,然后再看一下这个什么,这是呃这块。
26:04
这前面这四个咱们研究研究完了再看后面这个。呃,首行第二个元素,这是第一个元素,这是第二元素,差几啊。第一元素和第二元素差几啊,四是不是因为这个里面这个数组并列排序的嘛,是不是四啊,这第一这第一个,然后第二个,然后第二行和这个第一行,这个第二元素差几个。差多少个,这个是我们看一下这个说明啊,看这这里面对应找到这啊是第二行第一个元素和呃,是哪啊是。这这俩吧,是不是下这俩我们差几个看。查明白了,查明白好,我跟你说啊,这里面是首行第二元素,我这里面首行几个元素啊啊这这诶这里面好像不对吧,元。是这是首行第三个元素啊,第三个元素,这是第一个第二个第三个是不是第三顺序排列的吧,那我们这里面这个打印应该打印正确值,但这里该写出应该写错写的是这应该三吧,找这个位置啊,把这个改一下这什么这是。
27:18
呃,首行元素第三个是不把这个改一下,那你看他们仨每个差几啊,这个和这个还有这个四是不是差一差一个元素拉小啊,那我看下一行,下一行是哪个,下一行对应找一下是。啊一零和这个第三个元素它俩差几啊,就这个和这个差几啊四是不是它俩挨着了,那我们看一下对应的是不是这个这个和这个是不是差差四啊,是不是相当于我们所所谓的这个图,就把它这个是一位数组,这个怎么它俩是连在一起的啊,这里面是怎么没有空隙的吧,你看可以怎么表示呢?是这样表示啊。是吧,既美观又好看,是不是它们是挨着的,二维数组情况下就和一位数组也是相同的,是所有的元素都挨着,但是一行完事是什么?第二行然后在第三行,是不是就像贪食蛇摆列是这样这样这样这样这样这样这样摆列是不是那个一样的吧,嗯。
28:13
贪食蛇是一个一位数组,是不是两个贪食蛇是不是就24组了?嗯,好,这开玩笑啊,那这是什它们之间的这个一个元素的什么元素的一个差值,那比如说第二行第二个元素和第三行第二元素差多少个?12个是不是整整差一行啊呃,差一行,看一下这俩值是不是差12个,最后这俩值是不是差12个。呃是呃,加八是C,然后再加四是C4是不是,嗯,这里面是相差了12个,这是我们数元素,这里面只是给你打印出来打呀。只是给你打印出来这个数据比较多而已啊,你看下这也没,其实你看这个内容没多少东西,是不是只是给你说的话比较多,你感觉代码写的比较多了啊啊同样这个模型就是咱们刚才画这个模型,模型方式是不是一样的,第一行,第二行,第三行,然后他们数组下标排列方式你也应该知道。
29:06
是怎么排列的那把。
我来说两句