• C++函数的应用


    函数的相关语法

      函数的一般定义形式如下:

        返回类型 函数名([参数表])   //函数头

        {                                                 //函数体

          语句块

          

        }

      注意:

      (1)一个C++程序必须由一个主函数和若干个子函数(可能是零个)构成。程序的运行,总是开始于主函数,也结束于主函数。

      (2)参数表:每一个参数必须声明自己的类型。函数可以由一个或多个参数变量,也可以没有参数。如果没有参数,称为“无参”函数,无参函数的参数表中可写有void ,也可以省略不写。

      (3)函数可以有返回值,也可以没有返回值。对于没有返回值的函数,功能只是完成一定操作,应将返回值类型定义为void ,函数体内可以没有return 语句,当需要在程序指定位置退出时,可以在该处放置一个return。

      函数调用    一般格式为:函数名(实参表);

      几点说明:

      (1)如果调用无参函数,则实参表为空,但函数名后的括号不能省略。

      (2)实参和形参的个数和排列顺序一一对应,并且对应参数的类型应该匹配。

      (3)C++不能嵌套定义函数,但可以嵌套调用函数。

      函数声明:

        函数声明与定义中的函数头相同,即:返回类型   函数名([参数表]);(因为是一条独立的语句,尾部需加分号)该处的参数表可只写类型,而省略参数名字。如:int sum(int,int);

    参数传递

      函数的参数传递指的是形参与实参结合的过程。在C++中有两种参数传递方式,值传递和引用传递。

      (1)值传递:将实参的值复制给形参,在函数中参加运算的的是形参,而实参不会发生任何改变。传值调用起了一种隔离作用。

      (2)引用传递:在这种方式中,形参和实参对应同一块内存单元,对形参所作的任何改变会影响主函数的实参。

    重载函数

      在C++中,如果需要定义几个功能相似,而参数类型或者参数个数不同的函数,那么这样的几个问题可以使用相同的函数名,这就是函数的重载。系统会根据实参与形参的个数或类型来进行匹配,自动确定该用哪个函数。

      注意:重载函数的参数必须不同,不同之处可以是参数的类型或参数的个数。

    内联函数

      若函数声明为内联函数,则编译器发现某段代码在调用一个内联函数时,它不是去调用该函数,而是将该函数的代码,整段插入到当前位置。

      需要注意以下几点:

      (1)内联函数体内一般不能有循环语句和switch语句。

      (2)在内联函数第一次被调用之前,这个函数一定要在有声明或已定义为inline。

      (3)inline函数内的代码应很短小,一般不超过5行。

    函数模板

      函数模板声明格式:

      template <class 类型参数>

      返回类型 函数名(参数表)

      { 函数体 }

      几点说明:

      (1)函数模板定义由模板说明和函数定义组成;

      (2)关键字“class”用来指定类型参数,也可以使用typename来指定。

      (3)模板说明的类型参数必须在函数定义中至少出现一次。

      (4)函数模板可以像一般函数那样直接使用,函数模板在使用时,编译器根据函数的参数类型来实例化类型参数,生成具体的模板函数。

    递归调用

      一个函数直接或间接的调用自己,这种函数调用方式成为递归调用。分为直接递归和间接递归。递归函数的执行分为“递推”和“回归”两个过程,这两个过程由递归终止条件控制,即逐层递推,直至递归终止条件,然后逐层回归。所以递归函数中必须要有终止条件,否则程序将崩溃。

      

  • 相关阅读:
    欧拉回路一个定理的证明
    NOIP2018 初赛数学第二题解析
    linux 减少Terminal路径的方法
    网络挖坑
    linux 记录
    河南游记 Day0

    NOI2018 Day 1 你的名字
    大佬的几行fastIO
    Codeforces 781B. Innokenty and a Football League
  • 原文地址:https://www.cnblogs.com/wjq13752525588/p/11726836.html
Copyright © 2020-2023  润新知