• 循环与函数(篇五)


    1. for 循环
      for(表达式1; 表达式2; 表达式3)
      {
      //循环体
      }

      表达式1:循环初始化
      表达式2:循环结束 或 循环执行条件
      表达式3:循环步长

      执行顺序:
      a. 执行表达式1(当前循环中,只执行一次)
      b. 执行表达式2,判断循环是否执行
      若成立,执行 c
      不成立,执行 f
      c. 执行循环体
      d. 执行表达式 3,改变循环步长,使循环趋于结束,或使循环能够继续执行
      e. 执行 b
      f. 结束

      强制退出循环
      break:
      直接跳出循环
      contiune:
      略过本次循环,执行下一次循环
      return:
      结束整个函数

      在 for 循环中,表达式1, 表达式2, 表达式3 可以任意省略

      若表达式2 省略,则在循环体中,要有能够使循环结束的条件,否则将陷入死循环
      表达式3 省略,则循环体中,要有使循环趋于结束的条件

      死循环的写法:
      while(1)
      {
      //…
      }

      do
      {}while(1);

      for(; ; )
      {}

      在循环体里定义的变量,只能在循环体中使用
      当循环体只有一个语句时,{} 可省略不写

      思考:
      求 0 ~ 100 之间所有数的和,
      含 3 的数据,不统计到结果中!

      各位数为 3 或 十位数为 3

      num % 10 == 3 || num / 10 == 3

    2. 函数
      (1)概念
      把实现特定功能的代码,作为一个独立单元,使其可以重复使用
      即把相对独立的某个功能抽象出来,使之成为程序中的一个独立实体;

    (2)为什么使用函数??
    a. 使程序模块化,提高开发效率
    b. 使程序变得简短清晰
    c. 有利于程序维护
    d. 提高代码的重用性(复用)

    (3)函数的分类
    函数定义角度:
    库函数:
    系统提供,无需用户定义,使用时包含相应的头文件即可,无需在
    源文件中做类型说明

    如:
    printf()/scanf()/getchar()/putchar() —> stdio.h

    自定义函数:
    由用户按需要写的函数,需实现具体细节,使用时需做类型说明

    过程角度:
    有返回值:
    此类函数被调用执行完毕后,将会向调用者返回一个执行结果,称之为函数返回值

    函数返回值的类型必须在定义时和函数声明中明确其类型

    无返回值: — void
    函数执行完毕后,无需向调用者返回数值

    数据传送角度:
    无参函数:
    函数定义,函数声明,以及函数调用中,均不带参数
    主调函数和被调函数之间无数据传送
    ch = getchar();

    有参函数:带参函数
    实参(实际参数):
    函数调用时给定的参数
    形参(形式参数):
    函数定义和函数声明时的参数为形式参数
    在函数定义期间使用
    putchar(ch);

    (4)函数特性
    在 C 中,所有函数的定义,包括 main 在内,都是平行关系
    不能在函数中定义另外一个函数,即不可嵌套定义

    //下面定义方式是错误的
    void add()
    {
    //…
    void sum()
    {
    //…
    }
    }

    函数之间允许相互调用,同样也允许自己调用自己,称之为递归调用
    发起调用的函数:主调函数

    主函数可以调用其他函数,其他函数不允许调用主函数

    (5)函数定义
    一般形式
    类型说明符 函数名(参数列表)
    {
    //声明语句或变量定义语句
    //执行语句
    }

    类型说明符:char,int,short,float,double,long…
    函数名:驼蜂命名法
    说明:
    类型说明符和函数名称为函数头;{} 里的内容称为函数体
    类型说明符指明了该函数的返回类型,实际时函数返回值的类型

    参数列表:
    若为空,则为无参函数,不为空则为有参函数

    类型说明符1 变量名1, 类型说明符2 变量名2, …

    (6)函数声明
    函数在调用之前,应声明该函数
    若函数定义在调用之前,则无需声明,否则需在调用之前进行声明!

    函数声明可以放在函数调用之前的任意位置!

    函数声明一般放在头文件包含之后
    或者放在头文件中

    (7)参数的特点
    a. 形参只有在调用时,才分配内存单元,在调用结束时,立即释放所分配的内存单元。
    因此形参只在函数内部有效
    b. 实参可以是常量,表达式,函数等等,无论实参时何种类型的量,在进行函数调用时,
    他们都必须有确定的值。以便将值传递给形式参数
    c. 实参和形参在数量,类型,顺序上应严格一致,否则会出现不匹配的错误
    int add(int a, int b, double ret);

    add(66, 88, 3.14); //OK
    add(66, 3.14, 88); //Error

    d. 函数调用过程中,数据传送是单向的,只能把实参的值传给形参,
    不能把形参的值反向传给实参;

    ====================================================================================

    千里之行,始于足下!
  • 相关阅读:
    windows live writer 测试
    2011518资金净流入
    做人真善美,做事拖后腿
    今日盘面分析2011517
    近期国际版概念(5月19日益盟消息回顾)
    linux 系统应用程序桌面图标显示及进程自启动
    C#中发送邮件(以ASP.NET为例)
    Jquery使用$.Post方法,本地可以,服务器错误的处理方法...
    Silverlight中使用动画的技巧
    Silverlight之Easing
  • 原文地址:https://www.cnblogs.com/MINAIot/p/13041016.html
Copyright © 2020-2023  润新知