zoukankan      html  css  js  c++  java
  • C语言-自定义函数

    C语言自定义函数

    --1-- 自定义函数定义
    1.1 无参无返回值函数
    1.2 无参有返回值函数
    1.3 有参无返回值函数
    1.4 有参有返回值函数
    --2-- 函数的参数
    2.1 形式参数介绍和使用
    2.2 实际参数介绍和使用
    2.3 函数的参数传递过程
    --3-- 函数的声明及调用
    3.1 函数的声明
    3.2 函数的调用

    ----------------------------- 

    【写在开头:】

    函数是一段可以重复使用的代码,用来独立地完成某个功能,它可以接收用户传递的数据,也可以不接收。

    自定义函数分为:

    无参无返回值函数

    无参有返回值函数

    有参无返回值函数

    有参有返回值函数

    书写格式:

    返回值类型   函数名称(函数参数){

    函数体;

    }

    函数从定义到使用分三步:

    1、声明     2、定义函数  3、调用函数

    --1-- 自定义函数定义

    1.1 无参无返回值函数

    定义格式

    一般形式:

      void 函数名(){

      声明部分; //定义局部变量

      语句;

      }

    如:

    void sum(){
        //语句
    }

    1.2 无参有返回值函数

    定义格式

    一般形式:

      返回值类型  函数名(){

      声明部分;

      语句;

      return 返回值类型:变量或常量;

      }

    如:

    int sum(){
        return 1 + 2;
    }

    1.3 有参无返回值函数

    定义格式

    一般形式:

      void 函数名(形式参数表列){

      声明部分;

      语句;

      }

    如:

    void sum(int x, int y){
        //运算
    }

    1.4 有参有返回值函数

    定义格式

    一般形式:

      返回值类型  函数名(形参){

      声明部分;

      语句;

      return 返回值类型变量或常量;

      }

    如:

    int sum(int x, int y){
        //运算
        return x + y;
    }

    --2-- 函数的参数

    2.1 形式参数介绍和使用

    定义函数的时候,函数名后面小括号中的参数,简称行参。

    /**
     *  自定义sum函数
     *
     *  @param x 形参1
     *  @param y 行参2
     *
     *  @return 返回运算结果
     */
    int sum(int x, int y){
        //运算
        return x + y;
    }

    注意:

    1)形参定义后,并不会立即分配空间

      在函数被调用的时候才会真正的分配存储空间

    2)如果有多个形参,则用逗号“,”隔开

    3)形参的类型可以不相同

    4)在函数中不能定义和形参同名的变量

    形参只出现在函数定义中,在整个函数体内部都可以使用,离开函数则不能再使用。

    2.2 实际参数介绍和使用

    调用函数时,函数名后面小括号的参数,简称实参。

    实参出现在主调函数中,进入被调函数后,实参变量也不能使用。

    形参和实参的功能是作数值的传递。发生函数调用时,主调函数把实参的值传送给被调函数的形参,从而实现主调函数向被调函数数据的传送。

    int main(int argc, const char * argv[]) {
        int sum(int x, int y); //函数声明
        
        int result = sum(3, 5); //此处3, 5是实参
        
        return 0;
    }
    
    /**
     *  自定义sum函数
     *
     *  @param x 形参1
     *  @param y 行参2
     *
     *  @return 返回运算结果
     */
    int sum(int x, int y){
        //运算
        return x + y;
    }

    注意:

    实参可以是变量,也可以是常量,也可以是表达式。

    主调函数和被调函数是相对而言的。

    2.3 函数的参数传递过程

    1)形参变量只有在被调用时才分配存储空间,在调用结束时,即刻释放所分配的内存单元。

    2)实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,他们都必须具有确定的值,以便把这些值传递给形参。

      因此应预先用赋值,输入等方法使实参获得确定的值。

    3)实参和形参在数量、类型、顺序上应严格一致。

    --3-- 函数的声明及调用

    3.1 函数的声明

    在主调函数中,调用某被调函数之前应对该被调函数进行说明(声明)。如果不进行声明,则要将被调函数写在主调函数上方。

    一般形式:

      返回值类型  被调函数名(类型 形参,类型 形参…)

      返回值类型 被调函数名(类型,类型…);

        int sum(int x, int y); //函数声明

    3.2 函数的调用

    一般形式为:

    函数名 (实参表列);

        int result = sum(3, 5); //调用sum(int, int)函数

    注意:

    1)函数表达式

      函数作为表达式中的一项出现在表达式中

      m = max(34,10)+10;

    2)函数调用作为另外一个函数的实参

    3)函数的嵌套调用

       max(max(34, 44), 299);

    4)函数名不能和变量名同名

        int sum = sum(3, 5); //错 函数名不能和变量名同名

    【写在结尾:】

    『封装,作为面向对象的特性之一,隐藏了代码的内部细节,提供一个对外的接口。C语言虽然是一个面向过程的语言,但是可以将一些常用的自定义函数封装一个自己的工具类,方便重用』

    ☂业精于勤,荒于嬉;行成于思,毁于随。☂
  • 相关阅读:
    Arduino-LCD1602液晶显示器
    photoshop--选区变形
    利用github给国外文件下载加速
    开发老人笔记:Git 常用命令清单
    区块链轻节点:“身”轻,责任重
    需求条目化:一个让用户故事有效落地的套路
    十八般武艺玩转GaussDB(DWS)性能调优:Plan hint运用
    跨越全场景统一架构三大挑战,MindSpore亮出“四招”
    看图学NumPy:掌握n维数组基础知识点,看这一篇就够了
    进来抄作业:分布式系统中保证高可用性的常用经验
  • 原文地址:https://www.cnblogs.com/wang-biao/p/5658265.html
Copyright © 2011-2022 走看看