函数

    技术2025-08-17  14

    函数的主要内容:     函数的概念,设计,实现(定义)     变量的作用域和生存期     递归函数      1,函数的概念:   function,功能模块     在C语言中,函数是完成某个特定功能的指令序列的封装。     (1)函数可以实现代码复用     (2)函数有利于实现模块化设计     (3)函数可以灵活的组合调用          "函数就是实现某个功能的指令序列"               函数的设计:         需求分析: 你得知道完成什么事情                   然后完成这个事情需要什么资源:数据,内存开销等等                   具体的功能实现 ==>  算法                   反馈一个结果                                           函数的实现(定义)              返回类型  函数名(输入参数列表)         {             语句(指令序列)         }                  "返回类型":函数返回值的类型,即return语句后面那个表达式的值的类型,                   一般是"单值"类型",即基本类型或指针类型。                   返回也可以没有返回值,即void类型,如果不指定返回类型,默认为int型。         "函数名":C语言标识符,把该名字与函数关联起来。         "输入参数列表":功能模块的输入。格式如下:             参数类型1 参数名1,参数类型2 参数名2,...             函数也可以没有参数,即void。         注意: 函数是不能嵌套定义的,即函数的定义必须在函数外面。              函数的调用:         主调函数:调用其他函数的函数         被调函数:被别人调用的函数                  "实际参数":在函数调用过程中,主调函数传递给被调函数的输入参数值。简称为"实参"。         "形式参数":被调函数在定义时的参数。简称为"形参"。                  ★函数的调用过程:             (1)把实参的值赋值给相应的形参             (2)然后运行函数主体中的语句             (3)函数调用结束后,函数表达式的值就是return后面表达式的值(也可以没有返回值)                      return 有两个作用             (1)结束函数。             (2)返回一个值                      数据的传递:             主 => 被调函数 : 参数             被 => 主调函数 :  返回值             主 <=>主调函数 :  全局变量      2,变量的作用域与生存期     作用域: 变量名能代表该内存空间的范围         全局变量:             在函数外面的,且定义在最前面的变量叫全局变量。             全局变量的作用域:自定义处到文件结束(别的文件也能调用,但需要用extern声明)             但是,如果一个全局变量有static修饰,那么这个全局变量的作用域就仅在本文件中。                                   局部变量:             在函数体内或复合语句内定义的变量,叫局部变量             局部变量的作用域:自定义处起到函数或复合语句结束(即到第一个右花括号结束)                      ★不同作用域的两个变量,必是两个独立的空间。即使同名,则就近往上找。                  ★形参不能改变实参(形不改实):当主调函数调用被调函数且实际参数是变量时,           则被调函数里形参变量的值的改变不会影响到实际参数。           原因:形参只是被调函数里的局部变量,与实参变量是两个独立的存储单元,只是           形参变量的值被赋值为实参变量的值而已,两者互不影响。                生存期: 生存周期,过了生存期,其内存空间就会被释放掉。         全局变量的生存期,随进程持续性:你的程序一运行(进程),全局变量就会一直存在,         直到你的进程退出。                  局部变量的生存期:         (1)普通局部变量             普通局部变量的生存期,是随定义它的函数或复合语句持续性。(到最近的右花括号)         (2)static 局部变量             static int a;             static 局部变量的生存期,随进程持续性,且其定义时的初始化只执行一次。              3,递归     递归函数,是指函数调用过程中,直接或间接调用了自身。     C语言递归函数设计步骤:     (1)问题的模型本身要符合递归模型     (2)先明确函数要实现的功能与参数之间的关系,暂不管功能的实现     (3)问题的解,当递归到一定层次时,答案是显而易见的,且能结束函数     (4)呈现第n层与n-1层之间的递归关系                            

    Processed: 0.009, SQL: 9