zoukankan      html  css  js  c++  java
  • C/C++——[05] 函数

    函数是 C/C++语言中的一种程序组件单位。一个函数通常代表了一种数据处理的功能,由函数体和函数原型两部分组成。函数原型为这个数据处理功能指定一个标识符号(函数的名称)、说明被处理数据的组成及其类型、处理结果的类型。函数体由一组语句组成,具体实现数据处理的功能。这称为函数的定义。在某段程序中,一个函数可以被当作一个表达式来运行,称为函数的调用。函数的定义并不执行函数体中的语句,只是声明该函数包含这些语句、以及这些语句的运行顺序。函数在被调用之前,必须说明它的原型。被函数处理的数据一般作为函数的参数,在函数调用时确定它们的值。但是在函数体的语句中,可以直接访问函数的参数。函数运行后可以把它的结果返回给调用它的程序。

    1. 函数定义

    函数的定义形式如下:

    返回值类型 函数名([参数1类型 参数名1[,参数2类型 参数名2[,...]){
        语句1;
        语句1;
        ...
        语句1;
        return 返回值;     //如果返回值类型为void,则不用返回语句
    }

    返回值类型表示该函数如果被调用,它执行完之后向调用它的程序返回何种数据类型的值。函数名是程序员自己定义的、能够表明函数用途的标识符号,命名规则与变量的命名规则相同。参数是可选的,有些函数没有参数,有些可以有一至多个参数。每个参数都应说明其类型,以便调用它的程序可以填入正确的参数值。小括号和大括号是必须的。语句中可以把参数当作变量来使用。

    函数定义也可以分成两部分,即函数原型说明和函数体。函数原型说明必须在函数调用之前。函数体可以紧跟着函数原型说明,也可以放在程序中间的位置。

    如:

    #include <stdio.h>
    
    int mul(int x, int y);    //函数原型说明
    
    int main(){
        int a =0, b = 0;
        scanf("%d%d,&a,&b);
        printf("%d
    ",mul(a,b));    //函数调用
        return 0;
    }
    
    int mul(int x, int y){
        return x*y;
    }

    2. 函数调用

    在一段程序中引用一个已经定义过的函数称为函数的调用。在调用函数时要给出每个参数的取值。如果函数有返回值,可以定义一个与返回值类型相同的变量,存储函数的返回值。

    有返回值的函数调用可以出现在表达式中。

    3. 参数传递

    参数作为数值传递给被调用的函数,在函数内部等同于内部变量。

    4. 返回值

    函数执行完以后可以向调用它的程序返回一个值,表明函数运行的状况。很多函数的功能就是对参数进行某种运算,之后通过函数返回值给出运算结果。函数的返回值可以有不同的类型,返回值类型在函数定义时说明。

    5. 库函数和头文件

    C/C++语言标准中,规定了完成某些特定功能的一些函数,这些函数是不同厂商的C/C++语言编译器都会提供的,并且在用 C/C++语言编程时可以直接调用的。这样的函数统称为 C/C++标准库函数。

    函数必须先声明原型,然后才能调用。 C/C++语言规定,不同功能的库函数,在不同的头文件里进行声明。头文件就是编译器提供的,包含许多库函数的声明,以及其他内容(比如用#define 语句定义一系列标识符)的文件。头文件的后缀名是.h。编程时若要使用某个库函数,就需要用#include 语句将包含该库函数原型声明的头文件,包含到程序中,否则编译器就会认为该函数没有定义。

    C语言标准库函数:

    序号 头文件 说明
    1 <asset.h> 断言
    2 <ctype.h> 类型判断
    3 <errno.h> 错误信息
    4 <float.h> 浮点数
    5 <limits.h> 整型数据类型的表达值范围
    6 <locale.h> 本地化函数
    7 <math.h> 数学函数
    8 <setjmp.h> 非局部标号和goto作用
    9 <signal.h> 信号函数
    10 <stdarg.h> 让函数能够接收可变参数
    11 <stddef.h> 标准定义
    12 <stdlib.h> 标准库头文件
    13 <stdio.h> 标准输入输出函数
    14 <string.h> 字符数组
    15 <time.h> 时间
  • 相关阅读:
    周日讲课材料下载
    基础图论练习题
    邻接表存图的小trick(存多个图)
    0/1分数规划
    四道期望题
    基础线性代数大记(二)三道高消题
    基础线性代数大记 (一)前言与行列式的定义
    概率期望小记
    基础线性代数小记
    给二维数组排版
  • 原文地址:https://www.cnblogs.com/oddcat/p/9693397.html
Copyright © 2011-2022 走看看