zoukankan      html  css  js  c++  java
  • C++函数一(标准库函数,自定义函数)

    1.标准库函数

    下面以sqrt函数为例,解说下标准函数:

    sqrt函数用于计算一个数的平方根。sqrt函数从一个数(如9.0)开始,计算出它的平方根(如3.0)。函数开始时使用的值称为该函数的实参,它计算后得到的值称为返回值。有的函数可能有多个实参,但函数的返回值不能超过1个。如果将函数视为小程序,那么实参就相当于输入,返回值则相当于输出在程序中使用函数时,例如:

    the_root=sqrt(9.0);

     这里,表达式sqr(9.0)称为一个函数调用。函数调用中的实参可以是一个常量,也可以是一个变量,甚至可以是一个复杂的表达式。函数调用本身是一个表达式,可像他任何表达式那样使用。可以在任何位置使用函数调用,只要它能返回指定类型的值。
    如果要使用sqrt函数时,要使用头文件cmath,即#include<cmath>。其中include预编译指令。尖括号一内的名称是头文件的名称。一个库的头文件为编译器提供了关于这个库的特定信息, include预编译指令将这些信息传递给编译器。这样一来,链接器( Linker)就能在库中找到函数的目标码,以便将库正确地链接到用户的程序。例如, iostream库包含了cin和cout的定义,而且这个库的头文件称为 iostream;math库包含了sqrt以及其他大量数学函数的定义,而且这个库的头文件称为 cmath。如果在程序中使用了某个库的标准函数,就必须包含一条预编译指令,指定那个库的头文件。
    下表总结了几个标准库函数:

    名称

    说明

    实参类型

    返回值类型

    示例

    库的头文件

    sqrt

    平方根

    double

    double

    sqrt(4.0)

    2.0

    cmath

    pow

    乘方

    double

    double

    pow(2.0,3.0)

    8.0

    cmath

    abs

    取int值的绝对值

    int

    Int

    abs(-7)

    7

    cstdlib

    abs(7)

    7

    labs

    取long值的绝对值

    long

    long

    labs(-70000)

    70000

    cstdlib

    labs(70000)

    70000

    fabs

    取double值的绝对值

    double

    double

    fabs(-7.5)

    7.5

    cmath

    fabs(7.5)

    7.5

    cell

    向上取整

    double

    double

    cell(3.2)

    4.0

    cmath

    cell(3.9)

    4.0

    floor

    向下取整

    double

    double

    floor(3.2)

    3.0

    cmath

    floor(3.9)

    3.0

    【例如】

    double result, x=3.0, y=2.0;
    pow(x, y);
    cout << result;

     运行结果result=9.0
    pow函数始终返回 double类型的值,而不是int类型。还要注意,函数pow需要两个实参。一个函数可以有任意多个实参。每个实参位置都具有指定的类型。函数调用中使用的实参应该具有这一指定类型。

     2.自定义函数

     我们自己编写了一个函数,即这个函数是存在的,这叫作函数的声明(Declaration)。其次,我们要告诉电脑这个函数是怎么运作的,这叫作函数的定义(Definition)。关于这点我是这样认为的函数的声明就相当于告诉你后面有个帅哥,函数的定义就相当于告诉你那个帅哥到底长什么样子。

    1函数的声明

     作用: 告诉编译器函数名称及如何调用函数。函数的实际主体可以单独定义。

     函数的声明可以多次,但是函数的定义只能有一次

     函数原型的结构就是:

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

    函数声明同变量的声明一样,是一句语句。所以在语句结束要加上分号。

     2)函数调用

     调用函数将导致函数的执行。函数 main 在程序启动时自动调用,但所有其他函数必须由函数调用语句执行。当一个函数被调用时,程序分支到该函数并执行其主体中的语句。

     语法: 函数名(参数)

     3) 形参实参

    在声明一个函数的时候,参数是没有实际值的,只是起到一个占位的作用,所以称为形式参数,简称“形参”;
    在主调函数中调用一个函数时,函数名后面括号中的参数(可以是一个表达式)称为实际参数(actual parameter,简称实参)。
    实参是主调函数赋给被调函数的特定值。
    实参可以是常量、变量或复杂的表达式,不管是哪种情况,在调用时实参必须是一个确定的值。

     说明:

    1. 实参变量对形参变量的数据传递是"值传递",即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中实参、形参分占不同的单元。实参与形参一一对应,类型应相同或赋值兼容。

     2. 不同的函数中可以使用相同的变量名和形参名,他们是不同的变量。

     4函数的定义

     语法:

     返回值类型 函数名 (参数列表)
    没有分号结尾的函数原型

    {

    函数体语句

     return表达式

     }

    返回值类型 :一个函数可以返回一个值。

     在函数定义中函数名:给函数起个名称。

     参数列表:使用该函数时,传入的数据。

     函数体语句:花括号内的代码,函数内需要执行的语句。

     return表达式: 和返回值类型挂钩,函数执行完后,返回相应的数据

     【实例】

    include<iostream>using namespace std;
    int max(int x, int y);//函数的声明 ,x,y是形参
    int main() { int x, y, z; while (1) { cout << "请输入两个不同数值,以空格分开 "; cin >> x >> y; z = max(x, y); //函数的调用 ,此时x.y是实参 cout << "最大值是:" << z << endl;
    } }
    int max(int x, int y)//函数的定义 { int z; if (x > y) z = x;
    else z = y;
    return z;
    }

  • 相关阅读:
    ds
    使用js做的贪吃蛇游戏的知识总结
    使用js实现的关联表单
    使用jquery实现的计算器功能
    vue学习(2)关于过渡状态
    vue学习(1)生命周期
    vue学习(0)写在前面的一句话
    bootstrap(7)关于进度条,列表,面板
    bootstrap(6)分页,翻页,徽章效果
    异常捕获
  • 原文地址:https://www.cnblogs.com/CX66/p/13765460.html
Copyright © 2011-2022 走看看