00:01
那咱们继续啊,下面讲一个叫爷子人这个问题。是零四。也只能控制。点C。井号一。那这里面我们再写一下之前代码A等于十,然后是int类型的int int星类型的P等于and a。那我现在是不是谁啊,是P和A是不是有关系了吧?啊,然后是星P等于。100,这是谁呀?改变A的值是不是,那我比如说P等于100呢。P等于100是改变A的值还是改变P的值啊,P的值,那P指向于是个地址吗?这是个地址吗?不是地址其实也可以认为是什么是地址啊,指向谁的地址,指向内存编号,编号为100的内存地址,因为这个100是不是有个编,就是从零开始嘛,是不是到100是不是有个编号啊,然后这个A级的情况下,是不是有个编号啊,那如果说让P等于100情况下,这这里面这个是怎么呢?就是指向了一个。
01:19
也指针你知道吧,因为这个100兆空间,我不知道这个这指向于谁的,是不是就跟怎么就跟你这个是就跟点到什么点豆点到谁就是谁是不是啊,点到的东西发现怎么的,发现这个是不对,就相当于咱们这教室里面有好多班级是不是啊,你随便一个随便开门就进去了,是那发现这个班级这个都是一帮女同学,是不是UI班级是不是你进错了,是不是,那进错情况下你是不是可以出来啊,你没有在这里面听课是不是没有问题啊,当然你往那里班级一坐,是不是人家一点名把你查出来了,你是不是就得怎么的,就得是这个就是让你罚款,罚款2000元是不是听课了,是不是听其他学科课了,罚款2000元,那是怎么是是怎么,这里面是不是就算错误了吧,那比如说我这里面A等于100,就这相当于怎么相当于你进这个班级里面去了,是不是。
02:04
进这个班级里面去,他不会发生这个错误,知道吧,但是如果说你在这个班级里面听课,比如说星期。再等于100这啥意思啊,我这里面是不是找到这块内存空间了,它是什么呀?是P和100这块内存空间有联系了是吧?我在改变100这块内存空间里面这个什么呀,数据或者叫值为100对吧?100地址那里面值也改为100了,那假如说这块内存区域是怎么系统保护的,你是不是改变不了啊,是不是程序出错了,那我们打印一下这个值啊PTF。百分号D斜杠N斜杠N,然后是逗号一个。星啊。选择调试运行。调试开始执行。这程序挂掉了吧,看到了吧,就是因为怎么呢?因为我操作一块区域,这块区域为是100内存,这个编号是不是,那这里面可以跟大家说一下,另外一点啊,发展记录是。
03:08
零到255。都是。都是。系统保保留的啊,保留保保留。可以读。啊。但是不可以写,那我这块是不是读读取这个内存了吧,是不是P对应这个内存,那我想显示什么显示,比如说打印一个什么,直接不改变这个值,打印这个星批。能不能打印呢?能这里面是不是一个读的过程啊,我读谁啊,读100对应这个内存地址是不是这是个地址编号,是不是对应这块内存区域的这个值,但是这个内存区域我并不一定是一个什么样的类型一个区域,因为这个里面我以百分号D的读,我是连续读了四个,是不是100呃010203,是不是读了四个,让他以什么以这个是百分D形式显示出来,是不是,那读完之后可能是一个乱码,是不是因为我们不了解那块那个区域显示什么东西啊,你这怎么还挂掉了呢。
04:12
也不能读啊,这里面感觉还是怎么的,就是系统保留好像是不能读,也不能写吧,那好像写错了啊,是系统占用了啊,不能读。嗯,也不能写,那我换一块,比如这一这个100被系统占用了,比如说换其他的,换一个是0SFF00,就咱们这个是什么,是个地址是不是读一下它啊,这个也可能报错啊,也可能报错调试开始执行。啊,也报错了是不是啊,不能访问是不是,那就是是我们知道一件事,就是怎么这个是不是一个也指针的指的东西是不是我不知道是谁啊,啊就相当于什么,相当于这个例子有点窝,这个是比如说你去找个姑娘,是不是你又不认识这姑娘,然后你想跟跟他俩发生点什么是不是,这是不是可能导致这个问题出现的是不是啊,这是也指的东西是是你可以找一个具体的一个什么,具体一个对象是不是,但你不能在外面乱搞是不是,你瞎搞一个姑娘是不是可能就怎么出错了吧。
05:07
也不一定啊,是不一定咱不说了吗,这个读这块区域可能发生错误,也可能不发生错误,是不是啊,万一那姑娘觉得你不错呢,是不是,嗯。那这样情况就可以啊,这是也的问题,就是怎么的,再把这个针说一下啊,班长记录。叶子针。也指针是指向一个。喂。未知。的内存空间啊。可能。在。读写。的时候出现错误啊,有的时候是可能出现错误,有可能怎么样不出现错误啊,所以这种可能啊,那这个地址指向的就可能是一个什么,可能是一个其他的这个空间了吧,那这里面这个过程讲完,给大家画图演示一下。
06:13
把这保存一下。这是。零三。指。像。变量和赋值操作。好,再给大家来一个啊,画图。假如说这个是谁,是一个变量A的值,它是不是一个具体的值啊,是我我们程序中创建的吧,我们程序中创建的至少来说都能为我们程序所用吧,是不是,比如说A等于十,它的地址为什么0X。0SF呃,零零嘛,假如说是这个值啊,它有个具体值为十,那我通过指针去改变什么,改变这块区域是没有任何问题的,是可以的,因为我们程序里面的东西,那假如说这个什么,这个这是一个。
07:02
这是个指针啊,是int星。P等于and a,那这里面现在指向谁?指向的是这个是。0S0S00。那这样情况是没有怎么没有任何问题的,是可以的,而且前面加星就怎么可以改变什么改变这块的值啊,是没有问题的啊,但是如果说我在这里面给这个P做了个操作,什么操作是P等于100。注意一下,这是P等于100,不是星P等于100啊,这是它的注注意项啊,那这里面它就指向一个其他的一个。其他的一个位置空间,这个空间编号为多少啊100,那这个对应这里面这个值是不是我不知道是什么东西啊,我我怎么的,我要操作这块值的时候可能会发生错误,怎么操作呢?是星期操作啊。
08:04
Int星啊,不是直接写星P等于100是怎么是操作这块内容是怎么给他去赋值,是不是那箭头画反了,我再重新换一下是怎么是这样画啊。是改变这个值,那现在如果是星P等于100是怎么是将100放在哪儿,放在这里面来了吧,那和之前这个十有关系吗?没关系了吧,啊没关系了,而是怎么样是指向一个新的内容了,那这里面我在改变这个,这个P等于100和P星等100是不是对这个都没有任何影响啊,啊,这是这个内容啊。将将什么将这个是100放在这儿啊,把这个给它删掉。这个值为100啊,注意一下这个问题啊,这是我们的,这是叫野指针。
09:03
对应也指针,还有另外指针叫什么指针呢?指针空指针啊,这个应该说这个是怎么呢?是你可以怎么没有对象,就相当于什么空指针是不是,但是你不能随便这什么乱搞是不是,你找个这个野指人是不是回来是不是可能出现错误了吧啊。那什么叫控制帧呢?控制帧就是让这个P指向于一个什么呀?空的值,那我们看一下是怎么操作的。啊,我们在这里面继续写了啊,全拼一下,我们可以这样写啊,比如说这个是什么?是呃401,然后是int类型的min括号括起来。这样能懂啥意思吗?能吗?是不是分开模块了,这就不用注销了吧,像以前那样还得注销,比如说什么int类型的星P等于呃,就星P,然后是P等于nu,这就是什么值呢?空指针,指针就怎么没有指向任何的一个。地址,但其实它也指向一个地址,指向哪个地址了,指向零对应这个地址了,那我们操作一下控制帧,看可不可以怎么操作呢?给这个控制帧对应这个区域赋值星等于一个100,然后我再去打一下什么,打一下这个是。
10:15
地址百分号D,斜杠N,然后是。逗号一个星片啊,打一下这个值,看一下结果啊,调试开始执行。也挂掉了吧,啊,这里面注意一下啊,我操作空指针也怎么着也会出现这个问题是不是,但一般情况下这空指针都做什么用呢?是作为一个条件判断去使用,比如说我再去申申请一块什么申请一块定运存空间是不是使用完成之后我去给它制空啊,制空之后我就怎么下次再判断的时候怎么判断,如果这个什么P等于等于nur,那我知道什么呀,知道这块内存空间是空的了吧,那我就不能去操作了是不是,那我可直接怎么样re return一下是不是可以了,那如果说这个区域要怎么样,要是。
11:01
不荷意你空起码是不是我也可以进行一去操作啊,啊,比如说把它怎么着,把它这个是啊把它掉啊,这样可以啊,就是后面讲课内容啊,你先知道一下这个空的指针内容啊,一个空针截指针,操作空指针和操作截指针都会怎么样,出现问题啊,都会挂掉,那一般情况下是怎么呢?是给空指针赋值是没有问题的,而且是提倡这么操作的,知道吧,那就是一个指针使完之后,你可以给他怎么着赋值为一个空的是不是可以作为条件判断去使用,那把这记一下啊是。也是针咱们说了,这说控制啊。在这是。在这写吧。控制针就是指向内存。编号。为零的。
12:02
空间。空间咱们下面前面说句话,什么是零到255都是系系统保留的吧,那我要操作这个空间是不是也会出现错误啊,啊是操作,那什么是操作呢?就给它赋值操作就是前面加个星P是不是就赋值啊。复制操作。操作该。内存空间。也呃,也会报错,就会报错也行,会报错那是一个意思啊,因为这块内存空间怎么系统保留啊,一般情况,一般情况。空指针用作于程序。条件判断啊,就是这个意思啊,条件判断啊,这里面使用的啊,那这里面会有这个说明啊,是我们无论操作也值还是操作这个控制都没有,就给这个赋值啊,都没有任何意义存在,因为我这里面改变的区域怎么改变不回来是不是,但是还有一种情况就是也指针的另外一种使用方式,什么叫使用方式呢?也指针另外一种使用方式就是怎么着。
13:05
比如说你应该知道一件事就是什么,就是比如说叫八什么的那种八门神器吧,有这东西听过吗?啊,还有什么金山。金山金山金山什么游侠那干嘛呢?是改变那个内存的是不是啊啊内存的就是在一个程序中指向别人的内存,然后修改那个内存之后,我这面能怎么的能改数据是不是改游戏中的数据是不是叫八门神器,还有什么金山游侠是不是,这应该是这俩吧,呃,你该你如果说你要不懂情况,可以了解那里面就是怎么,就是它会便利你整个内存,是不是便利整内存,把那个内存里面的一个数据都怎么样都读出来是不是,你看下这游戏对应的是哪一块内存区域是不是,然后去改变那里面区域是不是在这个金山游侠或者在什么在那个八门神器里面改就精算是是什么改一个一指针对应的什么呀。内存空间是不是,但是他那内存空间是怎么,是我其他的程序一个空间,是不是能改的一个空间,知道吧,这也只是那个应用,听明白了吗?我再说一遍啊。
14:04
八门神器,或者叫什么按键精,呃,不是不是按键精灵就好了。呃,金山游侠那些都功能做什么用呢?是改变别的别的游戏的一些数据用的是不是,比如说金钱改成这个1万是不是啊,打你不死是不是1万滴血或者100万滴血是不是,那是怎么的,那是通过金山游侠这个程序操作别人的什么呀,内存空间是不是改变他内存空间里面数据,因为咱们这里面所有的变量是不是都会存在内存空间里面去存着呀。当你去改变它的内存空间的时候,那是不是就能对应改变那个值啊,啊,比如说他的金钱原本是100块钱,你给它改成1万,是不是因为这里面在他程序里面可以操作什么,他的这个变量是不是你在他那里面怎么着也可以操作这个变量,就相当于什么银行是不是可以操作他那里面钱啊,是不是你可以去。你因为你知道银行地址嘛,是不是你可以去银行里面去那啥去是不是咱们讲课呢,就不能太说多说太多,明白这个意思了吧,是不是,那我现在假如我去操作这个银行情况,我是不是以一个访问也指针的情况去访问这块内存空间的,或访问这个地点嘛,是不是,这里面是可能怎么不出错是不是,但是如果你这个被人抓住了,是不是就出错了,一个道理明白吗?
15:12
明白了,这是也只针的应用啊,也只针的一个应用方向啊,也指针并不是没有意义的,它是有意义的,但是这个它的意义在于破坏别人的什么呀,这个正常运行的一个程序而已啊嗯。那控制呢,就是怎么就是把它置为空啊,可以用于什么操作呢?是用于这个啊,权限判断操作就可以啊,这里面有对应这个操作啊。对应的调节方式,那那我们在这里面继续再讲一个什么,再讲一个指针类型叫万能指针,右击添加一个添加项。零五。万能指定点C。是。
16:09
把我们定义一个变量A等于10INT类型的星P等于and a,那我们这知道啥意思吧,就不用再解释了吧,因为我们知道什么知道这个是一个整形的变量,我给它复制复制一个什么呀。整形的指针是不是,但是有的时候我们对这个这个数据类型怎么样不了解,那所以说我们可以通过另外一种指针类型去操作是。Y的星,那这个平时我们都是称为什么是空类型吧,是不是?那在这里面如果加星的情况下,我们就称为万能指针,它可以指向于任何的指针类型,那比如说它等于什么?等于一个A。呃呃,是起个变量名啊,是P等于na,这里面是没有问题的,为什么这里面可以出现这个Y的类型的指针的,因为所有的指针类型大小,首先它是怎么着固定的,里面存的都是什么地址,Y的星类型存的是不是也是个地址啊啊但是这个地址,但是我要想操作这个内存地址的时候会有些问题,怎么问题啊,就是我得需要给它转换成它原来这种数据类型我才能去操作。
17:15
就是可以,如果想操作情况下,比如说星P等于100,你大家都知道我是改变谁的值,改变A的值是不是,但这里面报错,报什么错。啊,说说我这里面必须怎么样去修改一下它的所值才可以,就是我必须把它转换成它对应谁的类型啊,是A的类型才可以,那这里面转成什么,转成这个。In的星类型是不是A,如果要取地址情况下,应该得用什么in的星P再去存吧,啊为什么这样呢?因为这个值的情况下,我一个in类型占几个字的大小啊四个,那如果说想改变,通过Y去改变这个值情况,需要改变几个?四个字节大小是不是,那比如说这什么,比如说我这是一个差类型的。B等于单引号的这个A。
18:00
啊,那然后怎么着,Y的星,如果这里面按的B的情况下,我要改变这值的情况下,得改变什么类型,差类型,为什么改变差类型,它对应的找到什么一块内存空间,然后去改变这一块内存空间的大小是不是,那如果改多了或改少的情况是不是都不对啊啊都会影响我们结果啊这这个内容把这个先这个什么呀,这个差的先给它删掉。那这样情况下就可以赋值了,那看赋值是怎么赋值啊,是先把这个星去掉。先把前面这星去掉啊,这个P是个什么?是Y的类型的一个变量是不是,然后括号括起来是强转成什么类型了,印的星类型了,再加个星呢。取出了这个地址对应的这个什么呀?值是不是,然后给这个值进行一个赋值,赋值改变谁的值啊,A的值,那我这里面要打印的情况下,打印A的值,看一下A的值为多少。百分号D,斜杠N,然后是逗号一个A的值,那是100,那我们看一下调试开始执行。
19:00
是不是100没有问题啊,但同时我们再看一下什么问题,就是PRNTF,然后是百分号D,斜杠N,逗号一个星P。那这样写可以吗?你看这这里面我们知道什么,知道是这个是找到这个A对应的这个值是不是,但是这样写不行,为什么?因为它是Y的类型,他不知道,因为这里面存的都是一个什么首地址是不是,他不知道要你读取多多长的大小空间是不是,所以这里面再去通过指针去显示这个值的时候,也得需要怎么的。也得需要强转一下,这样强转就告诉什么呀,这个这个P去读取多大的大小啊,四个大小是不是就是它,然后它下面的几个顺序的是123是不是从它开始,在下面123来是几个四个吧啊这样情况才可以,那么下这样打印的值有没有问题,调试开始执行。啊,是不是两个都是100了啊,这是什么Y指针类型的一个应用,那Y指针类型应用情况,它不但应用什么呀,这个是我们这个变量里面也可以应用到什么里面。
20:06
呃,是数组里面也可以去应用知道吧,啊差类型的基本数据类型和这个里面是不是都一样的啊,你要改变情况下,这是改变成差啊,那数组情况下也可以用什么万能指针来接收,那这里面要涉及到一个下面内容,就是指针这块,呃,是指针和数组这一块了啊是零六,咱们先简单介绍一下啊,是零五,这是。啊,不是是05015,叫501也行。我再写一个。Int类型的什么呀,Int类型的。Min,然后包括起来。比如说我定一数组int类型的。AR,然后这里面多少个。十个大小,然后。这里面是定一个word void,然后星。P等于AR,看一下这里面我直接写个等于R,没有什么没有加那的符号,为啥呀?因为这个数组名就是首地址啊,直接可以用就可以啊,那这里面是不是没有问题啊,No让操作这里面数据怎么操作呢?
21:09
啊,P是什么,P是这个它的这个,呃,这个变量是不是我得加一个星P,因为这是数组嘛,数组好多个,是不是我得需要找到对应的某一个,比如说星期是一个,那比如说让它等于什么,等于这个是100,这里面得改一下,是不是得类型全转的,转成什么类型呢?转成。Int类型的数组是不是啊,那这个数组情况下,对应的情况下也得知对应什么int星类型,它代表也什么,也是这个,呃,数组也可以用这个in的星来代替,这是这个里面应用啊,你先把这记住啊,咱们一会儿再讲什么,再讲这个是数组情况下再跟你去说这个问题啊,先把这个问题先说一下。它这里面是不是也改变谁了,也改变这里面值了吧,改变是哪一个,因为这里面卷成印的类型,那我们知道是取出几个,取出四个啊,它有它首地址,然后1234能确定什么数组元素中的哪个AR。
22:06
零的这对应这个值是不是,那我想改变这个一对应的值,应该怎么办呢?是不是得加一啊,加谁的一啊。嗯。是不是我们如果找的情况应该是AR这个是一对应的这个值啊,那在我们这里面应该怎么去找呢?P是个地址是不是啊,那P对应地址情况下,这是有个地址编号的是不是?那比如说我们加四是不是一个一能力行大小啊啊先这样看啊,别别加一先加四啊。看一下指到哪了,那P加四之后,它是不是也得转成类型啊,转成什么类型啊,Int星类型你先别迷糊啊,别看这里面写多你就迷糊了,其实怎么其实就相当于给这个P加了四,然后再强转这些数据类型是不是啊,我看这里面出现错误了,看什么错误啊。啊,先给先给这个强转啊,放在这里头啊,啊这个先这样这样啊。
23:01
啊,这样就没问题了,是先把这个P旋转成应对对形大小,然后再给加四,然后再怎么的,然后再让它等于这个是。200是不是啊,我们的目的是做什么操作,是这个AR1让这个值等于200是不是,但是你看一下这个结果是不是这个值值啊,这句话是写错了啊,你别告诉我是写错了,我知道写错了。多少个十个,然后是I加加啊,为了不允许这个错误,先把这先让它等于个什么,等于个零啊,那我们看一下改变是哪两个啊,是循环一下,是PT打印下。百分号D,斜杠N,然后是逗号一个AR。I啊,全部打印出来,全部打印出来啊,这是一个循环啊,好,再写个re py return,一个零。调试开始执行。我们看第一个我们想改变是改变对了吧,啊,因为这里面这个手臂值和什么,和这个它的AR0代表地址是一样的,是不是,当然我们想改变这个AR1的时候,应该是对应的是这个值是不是给它改成多少啊。
24:07
200结果我这里面加了个四,一下子怎么样,我们意思是这个四代表着一个什么呀,一个印率大小,因为什么?因为这是地址是不是啊,所以加四才能到到下一个地址是不是,但是这里面有点问题是什么?问题是。因为我转成什么类型了,Int类型,它这里面加一个的时候,就相当于加了一个int类型大小,知道吧,它不是加四才加了一个in对型大小,所以这个是什么呀?是这个是Y和这个in这个数组这个问题啊,那我们看下这里面值能否改变,主要是开始执行。看一下是不是改变了吧,啊是不是这是我们通过什么呀,通过这个是万能指令类型去改变一个什么数组操作,是不是能把这先保。
我来说两句