美文网首页
2018-09-04函数

2018-09-04函数

作者: Ending_cy | 来源:发表于2018-09-04 16:59 被阅读0次

    函数

    • C语言不仅提供了极为丰富的库函数, 还允许用户建立自己定义的函数。用户可把自己的算法编写成一个个相对独立的函数,然后再需要的时候调用它
    • 函数的作用就是实现一个个的功能,比如手机就是一个程序,那么他的一个个功能就是函数,可以说C程序的全部工作都是由各式各样的函数完成的,所以也把C语言称为函数式语言

    函数的分类

    • 在C语言中可从不同的角度对函数进行分类
    • 从函数定义的角度看,函数可分为库函数和用户定义函数两种
      定义函数的目的:将一个常用的功能封装起来,方便以后调用

    定义函数的步骤
    函数名:函数叫什么名字
    函数体:函数是干啥的,里面包含了什么代码
    返回值类型: 函数执行完毕返回什么和调用者

    形式参数
    在定义函数时,函数名后面小括号()中定义的变量称为形式参数,简称形参
    形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。
    因此,形参只有在函数内部有效,函数调用结束返回主调函数后则不能再使用该形参变量

    实际参数
    在调用函数时, 传入的值称为实际参数,简称实参
    实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参
    因此应预先用赋值,输入等办法使实参获得确定值

    • 形参、实参注意点
      1.调用函数时传递的实参个数必须和函数的形参个数必须保持一致
      2.形参实参类型不一致, 会自动转换为形参类型
      3.当使用基本数据类型(char、int、float等)作为实参时,实参和形参之间只是值传递,修改形参的值并不影响到实参函数可以没有形参
    • 返回值类型注意点:
      如果没有写返回值类型,默认是int
      函数返回值的类型和return实际返回的值类型应保持一致。如果两者不一致,则以返回值类型为准,自动进行类型转换
      一个函数内部可以多次使用return语句,但是return语句后面的代码就不再被执行

    函数声明

    函数声明就是告诉系统我们这个程序里面有这个函数纯在.
    一般如果自定义的函数写在了主函数main的前面就不需要进行声明
    如果写在了主函数main的后面那么就需要在函数的开始部分进行声明
    声明可以写在main里面也可以写在main函数的外面,但最好是写在里面
    所以函数声明,就是在函数调用之前告诉系统, 该函数叫什么名称, 该函数接收几个参数, 该函数的返回值类型是什么

    函数的声明格式:
    将自定义函数时{}之前的内容拷贝到开始部分即可
    例如: int max( int a, int b );
    或者: int max( int, int );
    这两种声明方法都可以


    接下来开始练习

    1.若定义的函数没有参数,则函数名后的圆括号可以省略(错,不可以省略)
    2.C语言程序中的main( )函数必须放在程序的开始部分(错,任意位置)
    3.C语言中函数返回值的类型由return语句中的表达式的类型决定(错,函数是什么类型,返回值就是什么类型)
    4.return语句作为函数的出口,在一个函数体内只能有一个(错,可以有很多个)
    5.C语言的源程序中必须包含库函数(错,不必要)
    6.在C函数中,形参可以是变量、常量或表达式(错,不能传常量)
    7.在C语言中,一个函数一般由两个部分组成,它们是函数声明和函数实现(错,函数定义和调用)
    8.关于函数参数,说法正确的是:实参与其对应的形参各自占用独立的内存单元
    形参名称可以和实参同名
    9.下列关于自定义函数说法正确的是:函数可以没有返回值
    函数可以没有形参列表(切记函数不能没有大括号{})
    10.下列关于函数说法正确的是:函数声明时可以不写形参名称
    函数返回值和返回值类型不同时,会自动将返回值转换为返回值类型
    11.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是
    函数调用可以作为一个函数的形参
    12.基本类型作为函数参数传递时, 可以在函数内部修改函数外部变量, 这种说法是否正确的(错误的)


    递归函数

    • 什么是递归函数?
      一个函数在它的函数体内调用它自身称为递归调用

    递归函数构成条件
    自己调用自己
    存在一个条件能够让递归结束
    问题的规模能够缩小

    递归和循环区别
    能用循环实现的功能,用递归都可以实现
    递归常用于"回溯", "树的遍历","图的搜索"等问题
    但代码理解难度大,内存消耗大(易导致栈溢出), 所以考虑到代码理解难度和内存消耗问题, 在企业开发中一般能用循环都不会使用递归

    相关文章

      网友评论

          本文标题:2018-09-04函数

          本文链接:https://www.haomeiwen.com/subject/xdtnwftx.html