zoukankan      html  css  js  c++  java
  • 假期学习-2020.1.5

    函数的认识

    函数中关于局部变量,全局变量。

    • 局部变量:有效使用范围被局限于所在的函数内,所以说主调函数只有通过参数传递,才能把实参数据传递给函数使用;同样,形参的干煸也不会影响到实参传递。这种变量的有效使用范围,最大程度的确保了各函数之间的独立性,避免了函数之间相互干扰。
    int main (void)
    {
        int a=1;            /*主函数的局部变量*/
        {                   /*复合语句开始/
          int b=2;          /*复合语句内的局部变量*/
         ...
        }                   /*复合语句的结束*/
        printf("%d",a);
        return ;
    }
    
    • 全局变量:解决多个函数间的变量共用。定义在函数外不属于任何函数的变量成为全局变量。 作用范围:用定义开始到程序所在的文件的结束。
      P111 具体解释。

    变量的生存周期

    自动变量:

    auto int x,y;
    
    
     C语言中使用auto 关键字声明自动变量,使用static关键字声明静态变量。
    在函数中定义局部变量时,如果没有被声明为其他类型的变量都是自动变量。在编写代码时,有时需要在调用函数中的某个局部变量以后,这个变量的值不消失,并且保持原值不变,也就是该函数所占用的存储空间不被释放,在下次调用该函数时,变量中的值是上次调用该函数结束时变量的值。这时,使用的变量类型是静态变量,使用static 关键字进行声明。
    
    #include <stdio.h>
     
    void test()
    {
        auto a = 0;              //定义自动存储类型变量
        static int b = 3;         //定义静态存储类型变量
        a++;
        b++;
        printf("%d
    ", a);        //输出a
        printf("%d
    ", b);        //输出b
     
    }
    int main()
    {
        int i;
        for (i = 0; i < 3; i++)
        {
            test();              //调用test函数
        }
        return 0;
    }
           该程序执行的结果为: 1 4 1 5 1 6;
    
      在程序test函数中首先定义了一个自动存储类型变量 a 赋初值 0.定义了一个静态存储类型变量b 赋初值 3;在main 函数中,通过循环3 次调用  test 函数。在第一次调用时,a=0,b=3;执行{a++;b++;} a=1,b=4。第二次调用时,变量a的值为0,b的值为4,因为a 声明为自动变量,函数调用结束后存储空间的值被释放,因此在第二次调用时,使用的是函数的初值,变量b被声明为静态类型的变量,在第二次调用函数是,使用第一次函数被调用结束时变量的值4,所以执行结果为 a 的值为1,b的值为5,同理,第三次调用时,变量a使用初值0,而变量b 使用的二次调用结束是的值5, 故第三次调用执行结果a 的值为1,b的值为 6。
    
    

    原文链接

  • 相关阅读:
    API接口:分页
    PHP中判断变量为空的几种方法
    获取APP最新版本的接口案例
    浏览器兼容性
    APP的消息推送(极光推送)
    Json
    PHP 图片上传 (AIP图片上传接口)
    日历时间插件
    PHP读写文件
    ThinkPHP 事务处理 (事务回滚) 、异常处理
  • 原文地址:https://www.cnblogs.com/guolifei/p/12152861.html
Copyright © 2011-2022 走看看