00:00
啊,这数组定义性使用,我们这里面已经简单的跟大家说完了,那这里面我们再看一下另外一个内容,就是我们在初始化数据,我们在初始化数据的时候都怎么初始化的,看一下这里面我们直接义完,然后去手动的去初始化,也可以直接在定义完数组之后就给数数组进行一个初化,那这里面我们再新建一个右击添加一个新建项。零五叫数组的初始化。数组的初。始化和内存结构啊,这里面加两个知识点啊,这个同学刚才问的问题啊,好点C。行,你写完,然后把零三那里面那个给他注销一下,这是零三。我们一个数组,这个数组叫。同样这里面写什么,写这个十个元素,然后你可以后面加一个大括号,注意一下这是大括号啊,可以直接给它赋值,比如说九十九九十八九十七九十六。
01:12
九十五九十四九十三九十二九十一九十,那这里面多少元素啊,是不是十个元素啊,啊你不要管这个,你这个这不无聊了嘛,还非得说我是打对就就那啥就错了,这里面十个元素,它对应的就复制给哪个元素了,是不是对应在这里面,比如说我在这这里面大话对应的第一个就赋值给哪个,赋值给这个是第一个元素啊,是多少,是这个99,是不是下个是九十八九十七九十六,它就能直接找到数组中的某个元素,然后给它赋值,那我们可以打印一下,直接循环打印一下否循环。然后是in ti等于零,I小于十,这个十怎么求出来,你是不是也知道啊?嗯,答一下PTF。百分号D、斜杠斜杠N,然后是逗号。
02:05
Scores scores,然后是I的值。打一下这里面结构啊,调试开始执行。这里面打印的是不是我们对应这个数据啊,第一个第二个第三个一直到最后一个,这里面俩80是不是俩80啊,没问题吧,21俩八十九十九是没问题啊,这是我们。数组的说话方式,其中一种是可以怎么的,可以在这个,呃,就像变量赋值一样,为整个数组赋值啊,这种方式当然还有其他方式啊,这是第一种。像。变量赋值一样为。数组的元素依次赋值。一次负责。好,那这是第一种情况,还有第二种,那比如说我们再写一种。Int类型的cross,然后是十让它等于,比如说这里面我虽然就十个元素,但是我只赋值为三个,比如说这第一个为12,第二个为23,第三个为这个34,那后面没写,那你告诉我这个数组长度是跟他求的呢,还是跟他求的呢?
03:20
前面那个跟前面那个球的是不是,我们可以验证一下,怎么验证呢?这里面可以写个单一下point,然后是数组长度,写一个叫数组长度。数组长度冒号,然后这里面求出来这个值斜杠N。然后逗号。Size of是数组名,是scars,再除以一个size of。呃,Int int也行,或者这个里面元素啊,因为这里面这里面就仨元素,所以说我这里写个什么写个啊。啊,零看一下这里面值为多少。
04:03
有问题吗?Set off,这写错了,Set off啊,E和O写反了,呃,Eo。那好,那我们看求出来这个值到底是三呢还是十呢?这是我们对应的这俩值啊,先打印,我们先不打印啊。调试开始执行。这里面打印的数组长度没多少啊,十是不是和之前是一样结果啊,这里面看哪个是不看这个不看后面这个具体的值啊,那我看一下,那比如说我打印一下,就这里面已经知道是多少个值了,值了多少多少个长度了,是十个长度吧,那我把这十个长度打印出来看一下结果为多少。表示开始执行。打印出来结果前三个是十二二十三三十四,是不是,后面的所有结果都为多少啊,零,那这种方式赋值的情况下,比如说我这里面有十个元素,我只是给前三个赋值为具体的一个数值了,后面所有的都复制,为什么呀?零,它就相当于怎么写是逗号零,逗号零逗号零逗号零逗号零是不是这样写啊,就是为所有的这个值啊去赋值,同样这里面是某呃是为数组中的某元素负值,中间什么隔开啊,用逗号隔开吧,不是分号,是逗号隔开,这是大家注意了,这是我们定义的这种方式。
05:16
学校。啊,同样是怎么着,就是为数子赋值是。如果这个是。赋值时。负值值啊。括号中。数组,呃,是括号中那个是。括号中依次为数组。前面的元素赋值。如果。数组长度。数组长度超过。元素个数哪是数度长度是不是这数组长度啊?这是不是元素个数啊,嗯。
06:05
后面的。值。全部。初始化为零啊,就是这个意思能明白吧,那好,那这是第二种方式,还有第三种,那我们看第三种是什么样的方式。这里面写一下是int类型的score,然后中括号里面不写这个具体的东西,我在写这什么,写这个是12逗号二三逗号34。那你看这种方式也可以赋值,这里面我没具体的规定我数组里面有多少元素,而是给的具体的一个值了,那你告诉我这里面数程度为多少啊,三是不是如果没写的情况下,就是根据后面来计算,那看结果对不对啊,包括能否打印出来这个数值调试开始执行。哎,报错了,报错是因为我这个没关。调试开始执行。
07:00
啊,这因为打印几个,打印十个吧,我们手动写的,如果把这写什么写这个长度是不是不会报错了,嗯,拿过来把十改一下这个具体长度,你看报错完之后是打印都是一什么乱码数字吧,这是我们说的第一种情况啊,是这这是不是就数下边月界了,是不是我们这里面正常三个元素我一下写成十个了,是不是就下边月界了,打印都是乱码是不是,那这第一种情况不报错了,还有第二种情况是怎么会报错吧,是不是因为你访问内存那块内存空间可能怎么被其他东西占用了,然后不让你去访问啊,就出现这种情况开始执行。看结果打印出来是不是这个数长度为三,然后这个具体的这个值是不是这些啊,这是怎么的事,如果不写什么呀,数组的这个呃,元素个数,它就会根据这个后面这个具体的值给它这个赋值啊,有多少个就赋值多少个,就这种情况。那还有下面这种,我们看一下啊,把这个注销掉。近的类型的。
08:01
不写东西,然后让它等于个零。那这里面长度是多少啊一个,然后这里面的是一个长度,这个这个值为多少啊零,我们看一下是不是这样调试开始执行。是不零啊,长度为一这个数这个对应那个值为零,是不是这样?那好,那再这样写一下,比如说把这改成什么呀,改成这个十,那这个现在结果为多少啊?元素长度为多少,然后那个打印的值为多少?打印值为零,元素的长度为十是不是,然后打印的这个都是值位都零,是不是开始执行。十个,然后打印是零是不是啊。那比如说我改成这个是因为这里面几个元素,是不是就一个元素是零吧,那我改成一呢。是,难道是十个都是一吗?不是,是不是第一个是一,后面怎么都是零,是不是跟哪种是一样的,是这种是类似的吧,我们看一下是不是结果这样的调试开始执行。前面是一,后面都是零吧,所以说我们写零的情况下,可以为整个数组初始化为零,但是如果你写一的情况下,只是为第一个元素初始化为一,后面为零,这是什么呢?数组初始化这一块的明白了吧,嗯,这是初始化,那同样那数组初始化完之后还有一个什么,还有一个它的内存结构,那我们之前说了一句话,说什么话,我们这个数组。
09:20
在内存中它是连续存储的,知道吧,那连续存储的,那我们根据这句话分析一下这个内容。把这先注销掉。嗯,然后再写一部分内容,写什么内容写这个是。数组的内存结构。结构。这也是刚才同学问的一个问题啊,那怎么样呢?我们先定一个数组啊印啊,把上面直接拿过来就可以吧。这是不是定义一个数组了,并且是怎么着初始化好了,这个值是不是啊,对应的我们都能找到,那我们可以去打印一下什么呀,打印一下这个数组的这个地址,那找到数组中某个元素地址是什么方式去打印呢?看一下是可以通过PTF,然后。
10:08
百分号P,注意一下这百分号P啊,和之前不一样啊,然后这里面写什么,写一个斜杠N,然后写个逗号。我想找什么,找到对应的是什么,对应的这个元素的地址,那是不是应该按照之前来说应该怎么样,应该是加一个取地址的符号,诶这是在哪啊。在这呢吧,是不是应该加取地址符号才能取到这个地址啊,那我们这里面存的时候也是取地址之后往这个地址里面存储数据,能明白这意思吧,那我们初始化一下啊,这里面写一下是。百分号。然后是。零。这是啥意思呢?我打印一下第一个元素的地址,这个地址在哪呢?是这个。P啊,通过P打印出来,看一下结果是什么样的值啊,调试开始执行。打印出来一串数字,是不是这个数字对应的就是我们内存中一个地址,那如何找到这个地址呢?大家看一下啊,我先加个断点看一下,注意一下添加断点啊,选择调试中的开始调试。
11:08
嗯。啊,在开始调试的时候,你加端点的时候,一定要加在这个下面啊,然后你把这话给它复制上是零零。CFFC34是不是啊,把它复制上,然后在调试的过程中选择调试中的窗口。在窗口中选择这个内存,是不是这里面有四个内存,你就随便选一个就行啊,随便选一个就行,点开第一个,然后把你那串数值怎么着复制下来,粘贴到这里面来,是不是00CFFC34,你回车,你看一下找到什么,找到这个数据了吧。这个对应的是这这一块,因为int类型占几个内存大小啊。四个是不是,那这里面就是63,后面是000000,是不是这样的结构结构啊,那看一下63这里面是以16进制显示这个数据啊,16进制显示数据,你看这里面有什么E啊F啊是不是?那我们看一下63对应的这个值为多少啊。
12:05
64对应的是什么呀?是这个100是不是,那63对应的是多少啊?选择这16进制吧,六三对应这个十进制数为多少啊?99是不是能对应上我们这里面这个数值啊,因为这里面涉及到这个大小端对齐啊,就是这个内存地址一个大小端对齐。啊,内存地址大小的那些,所以说这四位摆放的一个顺序,我们知道是从后到前知道吧。从后到前就是怎么着,应该是如果写的情况下,应该这么写啊,比如说那咱们深入说一下吧,把这个深入说一下,其实后面会给大家讲的。拿到我们程序中啊,这里面正常情况下应该是怎么显示,显示的是我们正常一个数据啊,正常一个数据应该是怎么就是前面如果正数情况下0000,然后是0000,然后是00000000,这多少个零呢。16个12345678,然后这是。
13:00
24个吧,然后再写什么,再写是六十九六十九转换一下多少啊。呃呃,不是663啊,63不是69是。00100011是不是啊,然后是一组两组,然后340110,然后是001,这是它什么?这是它的内存中存的一个数据吧,是不是啊,存这样的。那我们看一下什么,那我们看一下正常情况下应该是怎么的,是从左到右是这个数据的这个具体值吧,但是在我们内存中它是怎么,它是倒着来的,怎么倒着来呢?这样写一下。那这里面对应的,如果说把一组数看成一个二进制情况下,这应该是多少?零零和这个应该是什么?是零零吧,是不是每四个对应一个16进制位,是不是这四个零对应是哪个对应这个零,这四个零对应是这个零,所以说第一组应该是什么零零是不是我们空号空起来下一组呢?也是零零是不是零零再下一组呢?
14:01
零零是不是,然后再下一组呢,这个是几啊是六,这个是三嘛,那其实这个咱们刚才不用计算器,是不是用口算算出来的是不是六三呢?但是在我们这里面显示什么,显示的是这个是。六三,然后是零零,然后是零零,然后是零零,那所以说这里面涉及到一个大小端对齐,那应该是怎么的,因为咱们这个数据应该读的时候,应该从哪开始到哪读啊。等会打开一个这个这个电子交边是不是应该从哪啊,从这面往这面去读这个数据啊,就相当于我们看数据就行了,那这里面应该是从这儿往这面看,然后把这个数据加起来,就是对应的是一个什么?是一个我们正常存储的一个数据,是不是这里面是这个我们现在是一个定存地址,是不是再给加一个对应的,是不是它对应下一个定地址啊,再加一个是对应又下一个地址了吧。四个为一组,存的是一个什么,一个int类型的一个大小,能明白吧,啊那好,这是第一个值,那再下一个就是怎么着,再下一个就是下一个这个值了吧,比如说这是呃99,再下一个什么八十九八十九是不是5559啊,我们看一下计算机算一下啊是。
15:07
嗯。五九啊,这里面选16进制,选择这个是五九对应十进制,是不是89啊,那你看这里面是不是内存都是连续连续的,这是第一个,然后下一个再加下一个,那你看我这里面得加四啊呃,四加四等于几啊八是不是,那看一下是不是这个五九了吧,我再加一个。八再加完就减几了。C了吧,呃,C这里面对应的什么?4E是不是再加一个C加完成应该是什么了。这讲啥?零了吧。应该是四零了吧,啊,这16进制进内了嘛,四零对应的是不是443呢?这里面存的都是什么,存的都是16进制数是不是,那这里面对应的就是什么,对应的是我们这个,呃。数组中的某一个元素是不是,而且他们连续的只要加四加四加的是多大呀?一个印的大小是不是啊,一个印的大小,那好,这是我们看的内存结构啊,这是需要大家了解一点内容。
16:04
那好,那我们这里面这是第一个值是打印什么,打印的是对应的这个内存地址,那你看一下我复制粘贴下来,把这改成一看一下,从零到一看一下变了几个这个内存大小啊把它关掉。选择调试开始执行,这里面就不加断点了,开始执行看一下。一个是00AFF774,到这是778是多少个,四个吧,加四是不是就变成下一个元素了吧,那你发现,而且发现这里面每次情况下,这个我我这个创建数组的时候,第二次的情况下,这个数值都变了,是不是刚才什么什么FFC是不是啊嗯,你看现在是774和778,再来一下调试开始执行。这里面变成什么了,是012FFDD4,然后DD8了,是不是这因为是什么,因为这里面数据存在哪个区啊,存在我们这个是。
17:04
站区,站区会根据你程序运行起来,自动就是给你加载知道吧,哪块区域就是这个系统随机分配的,所以说你在站区定义一个变量,所有的这个内存数据都是怎么的,都是这个是。暂时存储的就是会根据程序去结束的时候会怎么的,自动从内存中销毁是吧,你再启动起来,它又加载这内存中结束再干掉,是不是这个过程啊,能明白吧,所以说每次地内存地址都是变的,而且还有什么,还有是我们数组中包括就是相邻的两个什么两个这个数组元素间隔几啊四间隔大小是什么大小啊,是数据类型大小,比如说我这里面改成,如果是改成大boxs形法dou,那这个结果就变成多少了八个,那我们看一下是不是第二卷啊调试开始执行。是八,呃,是不是八个,这里面算一下,呃,TF就75吧,然后再加上一个八八加八是16进一再进一,是不是这个那啥呀。
18:01
相相同,相不是数组中相邻的两个元素,它们内存地址差大小差多大?差的是它们数据类型的一个大小,这明白了吧?啊,那他改回来,改成int类型。这个百贸P打印的是什么?打印的是内存的地址,是不是它以16进制打印我们内存地址,这里面写下注释啊。百分号P啊是。打印。呃,变量我就写变量了啊,打印变量的内存地址的内存地址是以。16进制,为什么以16进制,咱们看到了吧,有带F的,是不是以16进,以这个无符号16进制啊格式打印。打印,那如果说这里面是五二十六进制,那我可不可以改成另外一个值啊,改成啥呀。X是不是也可以啊,我们看一下X行不行啊。
19:02
调试开始执行啊,不不应该开始执行啊,是不是这样可以吧,我加加多点啊,看一下能不能找到这个具体的内存这个东西啊。好在后面加有断点,是不是调试开始调试。那对应这个内存是不是有啊,找一下这个是3BF814,然后选择一下。诶,零零啊,这里面得加一个零啊,是03B8414。格式它得必须对齐吗?000是不是能找到这个,呃,这里面要把它格式写对啊,但是这个具体的这个值,这个16进去是不能也能找到啊,那能找到你可以在前面加什么,前面加上这个是0X00是不是16进制去显示出来啊,这是不是也可以啊,显示出来这个具体值也能找到我们内存这个东西啊。好,停止价。啊,这个是以什么打百万P是以打印变量内存地址是以无26进制打印,打印时。
20:02
打印时需要在。打印时需要在变。量前加上。取地址符号是哪个,是这个and吧,嗯,And取地址符号给它放在这儿啊,需要加上and才能取出来这个地址啊,那我们可以怎么去查看呢?是在调试过程中添加断点,然后选择调试是不是。调试,在调试过程中选择出调试中的这个窗口下面的内存这四个随便选一个就行啊,选选一个就可以怎么的就可以输入这个地址就可以了,知道吧,嗯,这是我们这个家具存这块,诶不能把它关掉,先把它关掉啊。那好,那我这里面是打印的这个相邻的两个元素是不是,那我还可以打印什么,打印一下,打印数组名啊,先把这俩先注掉啊,先把这俩先第一个先注掉啊呃,这都打印吧,好,我把它就这样来啊。
21:02
打印数组名怎么打印呢?是PTF。白毛坯啊,这都改成白帽坯。一。斜杠N,然后是逗号是什么是。Cos。我这里面直接打印什么,打印这个数组名看一下是不是,而且我没加一个符号,哪个符号啊,取地址符号看一下能否打印出来这个什么,这个我输入这个名对应的这个内存地址啊,这里面写一下这是。数组名对应的地址。数组名。对应的。地址把这复制一下啊,就是数组第一个元素对应的内存地址,这是数组第二元素数组。呃,第一个元素对应的内存地址,这是第二个元素对应的内存地址,我们看一下啊。
22:03
第二元素对应的真离子。选择调试开始执行啊,看一下第一个数组名对应内存地址是什么?010FE3C是不是,那我们发现这个数组名和什么和我们第个元素对应地址怎么着一样的,所以说在以后这个操作中,你可以用什么,你可以用数组名来代表什么,数组中地域元素是不是也可以用什么,也可以用这个地域元素来代表它本身是不是也可以啊,这里面相当于什么,相当于这是我们整个数组啊地域元素它对应的内存中有一个什么呀,有个地址,在第二元素中对应内存也有个地址,是不是数组名对应的,就是对应哪一个第一个。首地址是不是首地址就是我们说数组名也对应到我们数组元素的首地址,也就是说和第一个元素它的内存地址是怎么样相同的,那和第二个元素地址差多少个?四个吧啊,差一个数据类型大小是吧,那我可以画个图啊,给大家来表示一下,也是和这个图差不多啊。
23:04
呃,新建一个,保存一下,新建一个。先画一块内存地址,这内存地址一般情况下都这么画啊,有横向有纵向的,但是你都知道这个每一个代表什么,我们这里面每个内存地址代表的都是什么,都是一个整形大小是不是。其实你可以给他细分,再怎么着,再给它分为这个是一,然后是。二。三四是不是这里面代表这个,如果是分小情况下,是不是一个什么,是一个这个小小比特吧。小比特是不是,那不是不是不是sorry啊,说错了,说错了说错了是一个是大B吧,应该是这么写的,是这个是bytee是不是啊EE大小是不是每个代表什么,代表一个这个小B是不是这里面还能划分,再再把它划分几个八个是不是就是我们字节的大小了吧,而我们用这个整个一块代表一个什么,代表一个in的大小,是不是你就知道哪块区域就行了啊,那咱们把这个先先怎么先给它这个干掉。
24:03
每个代表印的啊,这里面有地址编号了,我先写个地址编号,因为是16进制的,我写个0X00FF。零零可以吧,就是这是第一个这个内存地址,那第二个对应内存地址应该什么?0X00FF04是不是这样能对应上啊,这是第一个数据和第二数据,那我们这个什么写一下这个数组啊,写一下int类型的Co,然后是十,然后对应的有这个初始值,初始值就点点来表示。那我们这里面写一下是COS0对应的是哪一个,对应的是第一个元素,是不是它也和什么也和我们这个core相同啊,这个叫什么,这个叫数组名。数组名,数组名对应的地址等一下啊。
25:01
说。什么东西不用看数组名。数组名对应的内存地址和我们这个什么,和我们这个它本身这个,呃,通过这个。下标来找到的都是怎么样,同样的一个地址,所以说我要想获取这里面这个什么样值,那我可以怎么样通过SC也可以找到,是不是可以通过它找到啊,那下一个情况下加的是几啊加的是。四注意一下这是什么?这是内存地址大小,知道吧,内存地址大小,那同样同学之前问过一个问题什么呀?就是比如说我找到这个内存地址之后,我用什么呀?我用这个and这个里面是不是对应类型地址啊,我加一和什么和这个前面这个加一它代表值,但是是有不同的,我再说一遍是什么意思啊,是我用。这个数组名给它加一和数组中的一个元素给它加一,这俩代表的这个值就不同了,这是它俩区别啊,刚才说的是它俩相同的内容,这是区别在于什么?如果说这个速数组元素是多少个?
26:03
十个我用数组名再加一的情况下,会跳过整个数组大小,明白了吧,这里面有十个元素,它就跳哪了,就光标,比如说现在指向哪啊,指向在这个位置,对应的是这个这个地址是不是四号加一型啊,直接干到这了是不是。但是啊,但是什么,但是如果是这个。四乘号是零加一情况下跳哪啊?票是这对应的家是几个地址啊?四个int类型的地址,这里面加的是加的加是多少个,40个是不是是数组元素个数呀,我们找到他刚才说那个问题啊。李俊成说的这个问题,我们看一下这个。全部记录找一下啊。来看一下,他把这个问题正好给打印出来了,一会儿咱们可以测试一下啊,是怎么的,是如果说这个是A。呃,五这个表是五个数元素吧,然后是打印下,比方说p na这里面是多少,这na是。呃,这是一个地址是吧,是按零这里面它打印这俩地址是不是相同的,但是他问的为什么这个A0加一只移动一个下标就移动到哪了,移动到A1对应的一个里面东西了,然后A加一是移动整个数组就是这个是什么原理?
27:14
原理啊,是移动整数,那原理就是什么?原理就是如果用数组名进行相加的时候,它会移动整个数组大小,而如果用数组元素的情况下,它就移动一个元素大小,就这意思能明白,我可以给你怎么解释呢?这样解释一下啊。呃,求出数组。地址的地址方,地址方式啊,应该是怎么写呢?是PTF打印一下是。百分百分号P,斜杠N,然后逗号加上这个是。数组名,这是第一种方式,也可以是数组中的某个元素啊,也可以打印出它的方式。能量复制下。数组元素。
28:01
元素。那如果说什么,如果说这个数组元素情况下是。数组元素。通过那。元素。在加一的情况下,它就相当于什么,相当于加了一个多大大小呢?这个我写个括号,这样写括号加了一个。Int类型的这个大小知道吧,你也可以相当于什么,相当于这样写啊,Size of。括号一个。一个数据类型知道吧,但如果说你什么如果是数组名的情况下,再加一,它就相当于什么,相当于这个是set of加上一个数组名的大小,这是它俩的区别啊,所以说你在加一的时候,你你想表示什么,你想表示数组中的下一个元素,你怎么的,你得需要用这个这个去加一才可以啊,你要如果用这个加一情况下,它就是它就是跳过了整个什么呀,整个的一个数组啊。
29:02
当然这个咱们讲到指针的时候,会把这块拆开了,再给大家去讲一下到底为什么,什么原因知道吧,涉及到指针的时候,可以通过指针来操作这个什么操作这个内存的时候,再去讲这个问题啊,所以说你先知道一下这个可以啊啊。这是我们讲的这个两个问题,就是数组的一个呃,初始化,以及数组这个打印的过程,它数组的一个下标啊,以及下标操作啊。
我来说两句