• 作用域随笔


    /*
    变量类型:按照存储方式
    1.局部变量(声明在函数内的变量)
    2.全局变量(声明在函数外的变量)

    变量的类型:按照生命周期(变量在内存中存在的时间)
    1.静态生命期:全局变量,和静态的局部变量(在编译期间就存在,直到整个程序终止)
    2.自动生命期:非静态的局部变量.
    3.动态生命期:使用动态内存分配函数去申请的变量

    作用域:
    1.文件作用域:全局非静态变量(整个工程内部都可以使用)
    全局静态变量(在本文件的声明处开始,一直到文件尾部)
    2.函数作用域:局部变量(静态和非静态),作用范围:声明处开始,一直函数结尾.
    3.函数的参数的作用域:作用整个函数.
    4.块作用域:函数体中出现的一对{}之内的变量,作用范围仅仅在该块内.

    static:
    1.static修饰全局变量,改变了该全局变量的作用域,从整个工程可以被访问,变成只能本文件被访问.
    2.static修饰局部变量,改变来该变量的声明周期,从自动的生命周期变成静态生命周期.
    3.static修饰函数,改变函数的作用范围,只能在本文件去调用函数,其他文件不能调用.
    4.static修饰局部变量,在其函数被调用时候,初始化只执行一次.
    */

    #include <stdio.h>

    //static int a;
    void foo(int a) //a整个函数
    {
        int b;
        {
          static int c;
           // c = 10;
        }

        c = 10;

        void uplooking() //c99标准之后允许函数嵌套
        {
            printf("%s ", __func__);
        }
        
        uplooking();
        extern d;
        printf("d = %d ", d);
     //   c = 10;
        
    }

    static void func()
    {
        printf("hello world ");
    }

    int main()
    {
        foo(1);
        test();
        test();
        test();
        return 0;
    }

  • 相关阅读:
    perl中的默认变量与Z/map介绍
    perl6中字符串字母编历
    将数字转化为特殊符号的密码
    vue: axios
    vue: alias
    background-size
    问题:当浏览器窗口变化时,内容的大小以及相对位置也要相应变化
    vue移动端适配
    Web 端屏幕适配方案
    vue: register and import
  • 原文地址:https://www.cnblogs.com/ltlly/p/4684445.html
Copyright © 2020-2023  润新知