00:00
那一块这个内容是叫函数啊,和之前的内容都一样,很重要,为什么很重要呢?函数是我们这里面是算是对程序的一个升级的一个写法方向了,是不是就不再是单一的,所有的代码都写在什么都写在这个。主函数里面是不是我学员写代码全写在主函数里面了,这样情况下,比如说我代码异常1万行十几万行,是不是读起来怎么很不舒服,是不是,所以说我们需要怎么样模块化开发,那什么叫模块模块化开发呢?比如说像传世这公司。传市公司要运营起来之后,有很多这个部门,比如说像我们这个部门叫什么?教研部,教研部是,呃,我们教研部下面的C加加学院,C加学院中的讲师是不是这是其中第一个,呃,第一块,那我们这还有什么,还有这个助教是不是牛老师,这属于C加,C加加那个学院的这个助教啊,助教部的这个老师,班主任,班主任是谁?班主任是这个是学工部的啊,这个老师是吧?这都是不同的部门,我们协调工作,然后这个给大家这是怎么的,就是就是来给大家提供这个什么呀,环境是吧,或者是提供学习环境是不是,当然大家这个学费是不是也交到哪个部门交到,这个是财务部是不是啊,我们开工资也从财务部往上拿钱,是不是就是我们这个每个部门之间相对独立,但和另外一些部门都有相对应的联系,是不是比如说我们这个开班了,那是不是得需要找到具体的班主任呢?班主任那边下发一个,下发一个人,比如说派来一个老师,派来个美女班主任啊,做这个班级班主任,然后那个呃,讲师和什么和这个。
01:32
呃,助助教老师是吧,形成一体化的一规模,这样情况下才能怎么形成一个程序,是不是给大家去教授课程啊,是这样的,咱们班级也是这样的,比如说咱班级可能这个职位比较少,除了这个班长是,其他的就是组长了吧,比如说你在这个正常一个班级是不是班长,什么学习委员,体育委员,是不是文艺委员,是不是各种各样的这个组成一个部分,是不是每个人都负责不同的分工,然后去管理协同整个班级,那咱们也是一样的。那我们看一下,那么如何在程序中去写一个函数呢?那我们来啊,先来写一下。
02:04
调试开始执行。12是。韩硕。的。创建个定义吧,创建和定义。点C,好,那这里面我们先写个之前讲过的一个代码,井号一。先来个数组啊,Int类型的数组,Int类型的数组是AR,然后等于。3527诶这怎么不对呢,35279。一等会儿先别着急啊,零,然后是十。然后是四,然后是六啊把这删掉是不是可以了,多少个数。啊,十个数,那我要做一件事是不是啊,冒出去是不是啊,好,那大家都知道是不是啊。Int类型什么int类型的是I等于零,I小于几啊,九回可以啊,然后I加加,然后里程循环不循环,Int j等于零皆小于,Sorry sorry。
03:13
皆小于九减I,然后是J加加。然后是条件判断,那是AR中的这个是I,如果要小于AR,呃,不是,Sorry,又写错了啊,这又小于是AR中的这个是J,呃,J加一,那我是大在前面,小在前面啊。Tmp,然后等于AR中的。接,然后是AR。接等于AR。J加一,然后是ARJ加一等于AR啊,不是sorry PMP,那这样就写完了吧,是吧,我们答印一下测试一下啊PPF。
04:02
呃,PTF这是什么?这sorry,这这里面一个循来个循环吧,把上面这循环给拿过来。嗯,好像复制多了。拿一套循环过来,然后是。操作一下,这里面不再是九了,是什么十了吧?嗯,然后去打印一下百分号D斜杠N逗号,一个AR中的I的值。好,这样的情况下,我们就把什么就把这个是冒排序写完了,然后又打印一下啊,看看结果能不能运行啊。是11。调试开始执行。是不是十九八七六三十一,这是什么,从大到小吧啊从大到小排序了,那假如说这个代码我写完了之后,我对应的还有一组数。比如说这个数改了,改成这个是三十一五十二,然后是21,然后是17,然后是94,然后是十,然后是。86,然后是。
05:01
110,然后是。43和这个是60,那我这数又改了,那我是不是还应该怎么着,还应该再写个什么冒排序,我要把这个数怎么也给排序,是不是,那这样情况我怎么着把这个代码拿过来啊,当然这个我再改一点东西啊,比如说这个数据少了,少几个少了。三个剩七个了吧,那我把代码拿过来,我得需要改改几个地儿,你看需要改哪儿啊。粘贴过来,这里面改成几了,改成这个是七,然后这个是改成几啊七,然后里面代码虽然不用动了,但是这个名字得换一下,把这个换成一,这个成什么。啊,111。还有一个吗?这这吗一。可以里面这个条件判断里面一啊一是不是这样可以了,这个程序改完了吧,但是这样情况,我们这比如说要这是写两二排序,这已经不少了,是吧,比如说写1万冒牌序呢,就要想有1万个这样同类型的数组要写冒牌序情况,那代码是不是写的就更多了,看我一个里面冒牌序会占多少行代码,是不是12行代码1万个就是怎么样,12万行代码是不是选起来太麻烦了,我们可以找到对应的这些公共部分,然后给它提取出来一个什么呀,一个就相当于我们之前就是学数学有什么表达式,是不是先提出个表达式,那这个表达式比如说什么样的方式是不是都能计算呢?是不是,那那我们先提出来表达式,那看下这里面相同的两个程序。
06:25
那我把代码先拿到什么,拿到这个是外面去看一下啊。相同的这个两个表达式。哎呀。那我们看一下能提出哪些公共部分来,然后我们去可以给他写成一个什么,写成一个对应的函数,就是我们所说这个数学雅式啊来怎么样来去让我们程序更简单,更简化一些,那怎么提取呢?那首先看一下我这里面是不是第一个对应的都是有什么,都是有一个。
07:00
数组吧,是吧,那数组是里面存着一个值,那我用号排序情况下,第一个有什么有应该有这个是啊数组。这是第一个需要这个因素,然后第二个呢。我这里面这个是九个,这里面是七个,是不是它俩不一样的是不是,我这这是一个什么不同的条件嘛,是不是,那我先提出来是元素个数啊,这两个提取完之后,那我现在这里面看一下还有什么公共的地儿吗?啊,取项条件是不是很相同啊,那我这里面是这是这是第这是提取的第一组数,那第二组是什么是。循环。条件。那循环条件提取出来是不是就还有什么其他的吗?没了吧,因为这循环里面的格式基本上咱都没变,除了这俩值给改变了是吧,那这俩值我们这里面写的是一个固定数,一个是九一个是这,这一个是九一个是七,是不是我可以把这个元素个数作为什么作为一个。变一个。一个变量存在,是不是每次你提取出来这个数,比如说第一次是九,那我就这里面写几个啊,写九个,第二次里面如果是七的情况下,我这里面写几啊,写这个七是不是九,那七你传来多少个,我就给你进行多少次,怎么的多少次这个操作是不是就可以啊,跟这新环去比,那这个数组,那我们这里面可以传直接传递过来是不是就可以啊,然后循环条件呢是哪个,是不是把这个里面的扒起来就行啊,那我们这里面需要给它组成什么呀?组成一种格式,这个格式就成为什么格式啊,就成为我们的这。
08:28
函数的格式,那首先请问下我是不是得有一个什么,像一般情况下表达式都有一个什么什么表达式是不是,那比如说什么叫求压强的表达式叫什么呀?叫。这个是不是有点难了,是不是大家可能不懂了,是不是啊,是不是那个就表是不是表示都有个名字吧,在我们这里面是不是也给它起个名吧啊,比如说这个这名字叫冒号排序叫泡泡bbo,还叫什么B8BBO,这个大家知道啥意思吗?啊冒泡这泡泡糖吗?这个是啊bbo这话不会写了,Bob是bble啊,就是咱们是那个,你如果这对这个单词不懂的情况下,有个叫大号旁的是不是啊,叫比八啊,就是意吹特别大是不是啊。
09:16
那这里面我们起一个名字啊,那这个名字这两个是不是我得需要怎么着,需要经过提取出来它的这俩的一个什么呀,数组,那这俩作为什么作为这个传入项存在啊,传入项就是我既然要想做一个冒排序的情况下,一定要有这俩因素是不是啊因素,那因素我们就称为什么称为这个叫参数,我把这放大一点啊。参数,其实咱们讲课在今天讲课的时候说了什么,说很多参数是不是啊,比如说什么,比如说STRCPY,这是啥意思啊,贝是不是拷贝,这里面需要俩参数,是不是你可以找到咱们之前讲的内容啊,拷贝。是不是俩参数啊,第一个是目标参数,第二是原参数,那这里面得怎么着,就相当于我们这个八不一样,得需要传递过来,那我们这里面需要传递什么数组,In的类型的这个数组是吧?这个类型你需要给他声明一下啊在。
10:07
创建或叫定义数组的时候,那一定要给怎么着,给它写上具体的数据类型,然后这是一个什么,这个数组是不是,那放在这啊,你可以不用写具体的这个值,然后这拷贝里面,比如说是de det,然后逗号一个src,这是数组的什么,使用的时候吧,是不是,那这里面你注意格式啊,能把这先删掉啊,这第一个值第二只是什么?第二只是。数组的这个是长度,你要给我是不是啊,这两个值给完之后,给完之后我要做操作什么操作。冒排序是吧,把里面这个两重循环一写是不是就可以了,但是注意一下啊,我在写负循环的时候,In ti等于零,I小于什么I小于这个lengths是不是啊,这个如果说你在那个之前里面没有没有怎么具体给这个Les具体做去做,这个指简易的时候,你这里面怎么着得有个简易操作啊,然后怎么的,然后是I要进行一个加压操作,然后这里面这里面还跟之前的是不是一样啊啊。
11:04
啊,执行完成之后,那我这个函数就怎么样写完了是吧,我们只是写了一个简单函数,那看一下这个函数里面我们能怎么样,看一下它的格式是什么样的。格式首先是什么是?函数名是不是,然后括号括起来的称为什么称为叫参数列表,那这个里面有一个是不是可以多个啊,这是你自己写的参数列表,后面再括号括起来的称为什么称为这个叫。30。称为什么称为叫函数体或者叫代码体,是不是咱们之前说过吧?啊,叫函数体或者叫代码体一个意思啊,那看一下这是我们对函数的一个定义的方式,那我们这里面还有一个经典的函数定义的方式是哪一个啊,大家知道吗?就是主函数是不是我把这先放大一点啊,刚才可能是。拿下来啊。
12:01
谁呀?我要。不行啊,这个。打架了啊,这个怕后面的看不见了,这不就这不就吗。哦,这把就好了。专一类的,好,那我们这里面还有个什么经典的,是不是主函数啊,我们再看一下主函数的格式是什么样的啊,主函数首先我们写一个in的类型的man括号,然后是这里面写个word,平时都这么写啊。它这里面还有还得加一句话是REY0,这什么意思啊,这才是一个完整的格式,我们这里面写的不是一个完整格式是不是,那我们这里面缺什么,缺一个这个in的这个我之前说过叫啥函数的返回值类型是不是啊函数。函数的。返回值类型,那下面这个return代return啥意思啊,返回值是不是,那这个return同样还代表什么?函数的结数是不是?那那我们这里面有两个啊,一个是函数的返回值,然后是re return代表。
13:13
程序的结束是不是这是为什么代表程序结束呢?是因为它在主主函数里面,它代表程序的结束,那如果在其他函数中呢,是不是代表其他函数的结束啊啊,这代表其他函数结束,所以说我们经过这一步之后,我们就知道应该函数应该怎么去创建呢?这里面可以对应到这里面给大家去具体的去操作一下。再把这个完善一下,咱们这个里面完完善一下啊,首先那应该有什么是函数的。返回值类型,这是第一个我们需要的,或者叫直接写个什么返回值类型,这是第一个。哎呀。返回值类型,那下面跟什么函数的名称是不是啊函数名称,然后下面括号括起来的是。
14:07
韩硕。列,呃,不是参数列表参数。烈。列表,然后括括起来了,称为这个是程序函数体或程序体啊函数体,函数体完事之后,这里面是不是还有个对应的有return啊,Return叫什么re return,然后后面加上是反。返回值,那这样情况下才能构成一个完整的什么呀,完整的这个是。啊,函数的结构,那我们这里面需要把这个完善一下,这里面我需要返回值吗?这里面。啊,需要反应值访问哪个,把这个排序好的内容返回过去吗?啊用女同学说用啊,当然这个是,这是一个特殊情况啊,为什么是特特殊情况呢?是因为这是一个数组,知道吧,呃,我们操作数组的时候,你改变了这个值,不用反应过去,它也怎么的,它也在那个里面能能找得到啊这因为咱们是特殊情况,所以说咱们先正常情况下给他改一下,应该是怎么应该是这样一个情况啊是。
15:12
首先我要返回什么样的数据类型啊,这是不是一个数组啊,我拿过去是不是也是数组啊,那是写个int类型的,什么in的类型的是。这是不是数组啊,但其实这个因为是怎么是数组不需要返回值,所以说如果不需要返回值的情况下,我们用Y来代替Y是什么?之前咱们讲的是空类型,这里面就怎么不需要反位知类型了吧,是不是?然后什么?然后是函数的名叫比八,呃,不是B。BU,然后后面传递两值是int类型的,是AR,然后是逗号int类型的。Lengths,那这里面函数体代码体情况就是这个什么负循环这块了吧,那咱们就不写了,写完之后,因为这是Y的类型情况下,就怎么没有反应质类型可以我们可以直接这样写,Re return后面什么也不加,看到了吧,没有什么没有这个是具体的这个值,是不是因为它这里面没有对应这个类型,所以说这什么也不加,或者啊,如果是Y的情况,你可以怎么样?
16:11
不写也行写,呃写和不写都行啊,这两种,那那我们把这个什么,把我们这个程序提取一下它的什么,提取一下它的东西。那这两个程序啊,都可以拿过来去学,你看一下我先把什么,先把这个函数写在主函数的上面,看到了吧?啊注意一下,不是在主函数里面写的,是写在主函数上面或写在它下面是不是都行啊,啊看这里面我把主函数怎么的给做好了吧,然后再写一个。忘了。这是。函数的反复质类型,然后加上名字。BBL。L,然后是括号,括起来这里面什么开始参数了吧?啊,Int类型的是AR,这是我们数组是不是啊,括起来还有我们第二个值是int类型的。Length就是长度,你必须得把价值给它,你看这样写完之后是不是自然就出来这个格式了吧,我们在这里面调用的情况下也是同样调用,那看下比如说这个数组,我需要调用的情况,直接写什么?BR你看这里面已经有提示了吧,啊,你当鼠标放上去之后,后面是不是还有一个,它告诉你传递什么样的参数,什么样的类型,是不是都有啊,就像咱们之前讲的一样,我们找之前讲内容啊,比如说copy。
17:23
我们在写copy的时候,他怎么样自然他就怎么了,就把这个东西给你弄出来了吧哈,是不是同样的东西啊,只不过他就多加点下划线而已,多加点修饰而已,是不是,那咱先别管那些啊,这格式,那这里面做操作什么操作,先把注销掉啊。这里面做操作用什么操作是不是开始循环了,就拿过来,就是比如说这里面拿过来数组是不是开始循环了啊。那那是怎么操作呢?是把这个里面循环拿过来就可以吧,啊,整体代码拷贝过来啊,剪切过来也可以是吧?剪切过来修改一下啊,哪需要修改呢?这里面是不是几啊,九九的情况下,如果说这个lengths我要传递过去一个是九的情况,是不是就不用改了,那如果是传递数组长度是一个十的情况,是不是得减一啊,所以说这里面我传递一个时间,就是传递过去一个十是不是可以啊,这里面因为我们这个怎么样,我想写几就是几是不是啊,传递过去再操作是不是也行啊啊然后这里面什么,这里面是。
18:16
Les减一再减I啊,这个格式这样就什么呢?写完了吧,是不是,那我可以在这后面加上一句什么re return是不是就可以了,这格式就完成了,那我们这里面怎么着调用就行了,这是不是一个什么,这是一个数组吧,在数组定义完成之后,我这里面写个什么。BB括号这里面需要怎么的,看一下传递俩值,第一个什么。数组是不是第二个,是什么长度,我这里面数组元素几个?十十个吧,哦,我就传递十十到那里面它怎么样自动就怎么样减一了吧,是不是啊,这样就可以啊,那这里面我发出出现什么问题了,这样中化去掉情况,这是还没讲的知识呢,这不得是那个没办法呀,那这个知识先跟大家说一下吧,就是什么?就是这个是数组,如果作为函数的参数出现的时候必须啊不是是可以退化,为什么可以退化为这个是指针啊对,先先先退化为函数名,先不能退化太严重啊啊我再把话说一遍,先记住啊,后面咱们讲这个问题是数组作为。
19:21
函数参数,哪是函数参数啊。是不是这个函数参数啊,咱们是不是讲了吧,这呢对应在这里面,是不是参数列表啊,嗯,参数列表这里面是函数参数。可以。会化为。函数名啊,后面后面讲的时候就是什么呀,可以退化为。指针啊,这是一个意思啊,因为函数名它本身就是个指针啊,你先知道这一点就行,所以说这里面传递俩值,传递俩值之后,它就能把这个AR这个数组排序好,我们可以怎么样打印一下,先把这个先怎么的先给他先注销掉啊。啊,然后看一下整个代码的一个执行过程啊。
20:02
真好。小啊小方啊,把这个这个代码拿到上面去啊,这样方便大家去观察。那这样情况下,你看我这里面是什么,是一个数组,是不是这里面去调用了一个函数,这个功能是不是在函数里面实现了,这样情况下是不是就属于我们所谓的模化开发了,把所有的功能给一个什么,给一个函数,让他去帮我去完成这个东西,主函数的作用就是什么统筹管理,那这个相当于我们传说中的谁啊,传说中的这个。呃,总裁判是不是,那这个现在知不知道这个传智的掌门人是谁啊?大光头老黎是不是,为什么要大光头老黎呢?是不是天天剃个大光头是不是,嗯。他就可怎的?通过主函数去掌控我们所有的部门是不是啊,啊这里面比如说这里面我一个函数是什么做排序的是不是啊,我们是不是可以把打印这块是不是打印这个数据啊,也怎么样,也拿出来做一个单独的这个文化开发是不是啊,排序打印是不是,这里面就是怎么属于调别的这个功能函数是不是,那这里面还需要再再再往深入跟大家说一下,其他语言可能都是怎么着,就是把这些,比如说我这里面需要排序是不是啊,就给你排好了,给你暴露出了一个什么呀,类似于这样接口是不是,你每次写的时候怎么着调用这个是不是就完事了,但是咱们C语言没有这么方便的东西,是不是所有东西都得手写,是不是咱们就属于那种白手起家,是不是要要想要房子咱自己盖,是不是不像人家,是不是人家盖的时候是不是把这个框架是不是一搭,然后这个盖上房子,咱们是这个做一块砖,是不是弄个房梁,是不是然后再盖个房子。
21:31
但是咱们这个以后的情况下,就是你在你以后工作中了解的绝对绝对比他们深,是不是啊,你就知道这块代码虽然它封装好了,但是你知道这个里面封装的具体内容是不是就是你咱们学习的内容可能是每天学的比其他这个班级学的,你看人家这个加了班,可能上一上午四个小时就把这个内容知识点讲完了,是不是咱们这一天上八九个小时还不够用的,是不是,可能咱们很多做很多事,就怎么对这个细节,或者对一些函数内部的一些结构的一些处理过程,会比耽误,会比较耽误时间,是不是?所以说咱们这个car c和car学完之后拿工资会比他们高,因为什么啊?因为如果说咱们这个,比如说这函数没封装,是不是没有封装好的东西,是不是啊,咱们拿过来噼里啪就能封装好,是不是,他还得一点点去弄是不是,所以说这个就是你以后工作中比他们的优势啊,但现在学习情况是比较痛苦的啊。
22:20
那这是我们封装好的一个过程,那我们画图给大家去理解一下啊。啊,这个图先保存一下啊,是函数的样式。零二叫函数。叫函数封,呃,函数封装模型吧,封装模型,这是第一个。好,我们再新建一个啊,新建什么,就是假如说我们看一下这个程序就叫程序执行。流程,这是第二点要讲的内容,就是我们程序执行流程原先都是什么,原先都是主函数是不是,嗯,从上到下一步步怎么完成执行,那就是没有任何的怎么样,就是就跳一换都都是在哪跳的,都是在这个函数内部跳的,是不是我想怎么跳,不是我想在怎么样,就是上下换换行,换换行或者循环是不是就错了,但是这里面如果咱们涉及到了函数,那看一下它的这个程序执行流程是什么样的。
23:15
那首先有一句话大家应该知都知道是吗?是一个程序,如果执行的话,从哪执行啊。啊,这里面转函数多一点啊,写个re return,零。程序都是从主函数中开始执行的,是不是主函数被唤醒之后,比如说我定义了一个变量,比如说int类型的A等于十,它的A怎么突然间多这么多东西啊,A等于十,它对于我们内存中的操作就应该是什么样操作呢?就是。在内存中创建了一个什么?创建了一个变量,这个变量值为多少啊十,那这里面给大家画一下内存示意图啊,比如说这里面是有一块内存区域,内存都有什么呀?编号的是不是跟大家说了吧,无符号16进制0SFF。
24:00
这是零啊。零诶0000啊,这假如说存在什么,存的是一个值十,那这个是这占那中占了四个位置啊,你不要占一个位置啊,比如说这里面又怎么的,又是定义了一个变量。呃,差,然后是在这等于。A,那它是不是也和这个之前一样啊,需要怎么呢?需要在内存中去创建一下吧,啊创建什么?创建一个多个大小的是一个大小的吧,啊一个大小一个字一个大小的是A。啊,为了方便画起见,我这个里面小一点啊,这个代表一个字节。然后是。诶。这是程序的执行过程是不是,比如说你在循环情况下怎么的,它也是会,比如说我们在不循环的时候,这个在不循环里面创建什么,那个I是属于什么,是不是属于一个临时变量,是不是啊,这里面注意一下我在程序结束的时候,那对应的这些内存空间是不是都怎么的,都会怎么被干掉吧,是不是啊,程序执行完成,内存会把这些东西都怎么释放掉,是不是,那不可能都让你占着,是不是你你就像你在宾馆一样,你住了一天,是不是你住完一天之后,你赖人不走了,人让你嘛,是不让你是不是直接就是来弄弄走是吧,或者是你这面。
25:14
睡完一天之后你退房,是不是你退房之后,你得把这个房里东西都清理干净吧,是不是同样的道理,是不是一个意思啊,啊,这个你别笑啊,这个没有啥其他的污点啊,那这是同样的道理啊。那这是什么?这相当于我们这个是程序在内存中的一个执行过程,是不是就是程序的创建以及对内存的这个模式,是不是当我们创建了一什么,创建了一个函数的时候,注意一下这是函数了啊,比如说咱们叫什么八宝。八那八报的时候他怎么着,他会再去将什么呀,将这个我们。这个函数里面的内容去给它唤醒,知道吧,如果说我在这个程序中。没有去调用什么,调用这个八宝情况下,它不会将这个东西放在我们内存中,知道吧,明白了吗?它会只是作为什么,作为一个是这里面都会编译成什么呀,就是代码指令知道吧。
26:06
代码指令它不会在我们内存中去运行,但是它有这些指令已经有了,知道吧,你在没唤醒之前,它是有这些指令的,你在唤醒之后它才能怎么的把这些东西加到内存中去啊,那看一下都有哪些呢?比如说咱这个发布里面有有两个什么,有两个三。等会啊,等一下啊。有俩参数,第一个参数什么,第一个参数是不是这个数组啊,啊int类型的是AR,还有我们第二个类型的什么int类型的。Nice,放不下了。Les,那这俩东西啊,那这俩东西它是怎么创建呢?它是不是对应的是一个什么,是一个函数是不是,那我们这里面还是么,还得去开辟一个对应的是函数的空间是不是,那这个函数空间里面做哪些操作了呢?这个叫BU bubble。
27:01
这里面是int类型的AR,然后以及这个什么,以及这个是。放不下呀。换行吧,In的类型的。它这里面这是什么,是不是函函数的,这个是参数啊,这个参数在创建过来之后,是不是怎么着,是不是有值给它传递啊,看一下这里面对应的是不是我得把一个具体的值给它,他才能给我进行计算呢?所以说这里面还要区分另外两点,一个叫十三一个叫行参,咱们先知道这个两个事啊,一个叫行33啊。一会儿给你解释啊,你先别着急。行参和实参啊这俩值,那这里面我们需要怎么着,需要对应的是不是把这这些东西也需要在那中去创建出来啊,那创建出来。啊,那就是画也是画这种小框框啊,一个是数组,一个是int类型的LAS啊,划不了划不开了,你就知道这里面存,这里面对应的内存,存的什么,存的就是AR的数组,这个存的什么,存的是一个。
28:02
啊,存的是一个LA,它创建当这个执行完成之后,就这个函数执行完成之后啊,比如说这里面遇到了这个是return,执行完成之后,它对应内存是不是应该释放啊,啊,它对应的内存应该释放就对这里面,比如说它有这个线连接啊,如果说怎么样,如果说这个出现呃,执行完成之后,它会有这个是打叉的情况,就应该释放了是不是。但是因为怎么,因为咱们这个例子有点特殊是什么?因为数组它并不一定会释放,知道吧,你先把这个作为一个问号去怎么样考虑这个问题,知道吧,啊你就可以相当于什么十参,你先记住这一句话,十参会在函数执行完成之后会被释放掉,是不是,你看这咱们主函数会不会释放掉,是不是其他函数也会被释放掉啊,但是因为是数组,所以说它这里面会这个有点问题啊,它不会释放掉啊,你先知道这个问题就行。像其他这个变量一样,我们这个lesss啊定义的这个变量,它怎么着它会被释放掉,知道吧,它释放掉之后,那我们这怎么着会把这个结果,因为它这里面没被释放是吧,所以说我就能得到这个什么,得到这个结果是吧,这结果我可以进行一些什么操作是吧,那这里面是什么是往复的吧。
29:09
拿到这个结果可以进行一系列的操作,这是整个的一个执行的过程,是不是就是在主函数的时候换取其他函数,其函数执行完成之后,它会把它的那些没用的怎么着干掉,然后把一些有用的拿过来,有用的就什么就是返回值,给我们返回这些内容,或者是数组里面存在的一些一些数据,明白了吧?这是这个值,那咱们来解释一下什么,解释一下什么叫行参,什么叫实参?看一下我在写这写的时候注意下一句话啊,是。函数。调用。我写这句话是什么?是我要使用对应的哪个函数,是不是上面这个函数啊,这是不是一个调用的过程啊,比如说我想用系统中的一些一些操作,比如说是。STRCMP这是什么,这是啥呀?比较是不是比较,那我想比较两个函数是不是这用的什么,这是不是调用系统给我们这些东西啊,那这是函数的调用的过程,那前面呢,到这块是一个什么过程啊。
30:15
函数的实现过程,是不是同学说实现了实现过程,或者说我们叫函数的。呃,定义过程或者叫创建过程是不是啊,它这里面有具体实现的一些代码是不是全在这里面啊,这是不是定义或者叫实现或者叫创建,是不是一个意思啊?我们统称为叫函数的定义,一个下面那个叫什么?函数的调用,在函数调用的时候传递过去的是不是一个具体的数啊?比如这里面是不是都有具体的值啊,这个里面是不是具体的值啊,但是这里面我们创建都是什么,都是一个变量,它这里面给负初始值了吗?没有,这也就是什么行参,我们把这个什么函数定义中。参数列表。中的数据称为函数的形式参数。
31:07
只是一个形式是不是,它没有一个具体的值,是不是啊叫什么就是。行参啊,这个这个是它一个名词啊,那这里面如果有具体的值的情况下,就什么食参叫什么实际。参参数,那这里面给大家举个例子,这个例子可能有点,这个是有点污啊,这但是很好理解,比如说你和你还是咱们函数的形式参数和实际参数,这个例子那很容易理解,就是怎么呢?就是在函数调用的时候,哪是调用啊,我想使用这个函数的时候才怎么的,才去给一个具体的值,这是。实际参数形式参数是没有一个具体值,但是谁调用的时候都需要传递过来一个具体值,这个形式参数负责接收的代码就是实,就是实际参数吧,嗯。行参。
32:01
嗯,接收。13。13啊啊,然后在函数内部。呃,执行啊,或者是他在函数内部进行进行计算吧,进行操作吧,进行计算操作预算,进行预算嘛,这样更准确一点啊,运算这是整个一个函数的调用模型,呃,调用模型的一个,呃,一个理论机制是不是啊,然后包括咱们这里面是不是也给画图了,我们知道一下这个它在内存中一个执行的过程,这是我们整个一个函数操作,先把先。
我来说两句