函数

函数的主要内容:
    函数的概念,设计,实现(定义)
    变量的作用域和生存期
    递归函数
    
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层之间的递归关系
    
    
    
          
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值