美文网首页
2020/5/12 Class12 函数

2020/5/12 Class12 函数

作者: 黄灯浸茶 | 来源:发表于2020-05-12 17:32 被阅读0次

    开头,考试难度PTA,编程题仅限于上课所讲
    如果PTA很简单,那么考试轻松。

    • 对于循环来说,领悟循环的编程模式,
    • 对于与表达式来说,理解记忆表达式的规定
    而函数是要理解概念

    1 . 函数就是一个模块:

    • 简化
    • 代码复用

    函数由 函数头 和 函数体 组成

    函数头:

    void类型 表示啥也没有,没有函数值

    int main()
    {
        printf("Hello world!\n");
        return 0;
    }
    

    如果只有 main(), 相当于前门默认有一个int
    在结尾需要返回一个整型,

    return类型一般和表达式类型相同
    main()
    {
        printf("hello\n");
    
        return 0;
    }
    

    举例一个
    1.sum函数如何定义
    函数头:函数名,函数类型,函数形参
    函数体:函数需要执行的内容

    2.函数中的 a,b,s 何时分配存储空间,又何时被回收
    函数内部定义的变量叫局部变量
    调用时生成,返回时,回收

    3.形参变量 何时初始化
    1.2,3.4是实参,

    4.函数返回值作为函数调用表达式的值

    如果函数是 int sum。输入4.6输出4

    int   main()
    {
        double t = sum(1.2,3.4);
        printf("%f",t);
    }
    
    
    double sum(double a, double b)
     {
         double s;
         s = a + b;
         return s;
     }
    

    两次调用sum函数
    double t = sum(sum(0.8+0.4),3.4);

    double t = sum(sum(0.8+0.4),sum(0.3,0.1));

    double t = sum(sum(0.8+0.4),sum(sum(0.2,0.1),0.1));


    注意

    //1.实参调用后,内存中分配a,然后输出++a,
    //2然后什么也不返回,然后回收
    //最后输出1110
    要想改变a的值,要在main函数里面改

    int main()
    {
      int a =10;
      fun(a);
      printf("%d",a);
    
      return 0;
    }
    
    void fun(int a)
    {
         ++a;
        printf("%d",a);
        return;
    }
    

    ============================================
    函数内定义的变量 是函数的局部变量
    生存期 可见性 均为局部
    调用时,实参传递给对应的函数形参


    静态局部变量---静态变量
    static 生存期是全局的,而可见性是局部的

    每一次调用a都会初始化为1
    所以输出:111

    void fun()
    {
      int a=1;
      printf("%d",a++);
      return;
    }
    
      int main()
    {
        fun();
        fun();
        fun();
    
        return 0;
    }
    

    void fun()
    {
      static int a=1;
      printf("%d",a++);
      return;
    }
    

    如果加入全局静态变量,就只会初始化一次

    输出结果为:123


    如何定义函数:函数头 与 函数体

    函数类型是由定义类型而非return表达式所决定

    函数调用时,实参表达式的值 传递 对应的形参;

    返回时,函数值作为“调用表达式”的值。

    变量

    • 局部变量 生存期和访问性 是局部(函数级)的。
    • 静态变量, 生存期是全局(程序级)的。
    • 全局变量,生存期和访问性都是全局(程序级)的

    设计递归

    1、 递归模型;
    2、 递归出口

    相关文章

      网友评论

          本文标题:2020/5/12 Class12 函数

          本文链接:https://www.haomeiwen.com/subject/qxsbnhtx.html