zoukankan      html  css  js  c++  java
  • 变量作用域和生存期

    C语言的变量按作用范围分为:局部变量、全局变量

    局部变量作用域仅限于函数内,注意,形参变量是被调函数的局部变量,实参是属于主调函数的局部变量。

    全局变量也称为外部变量,作用域是整个程序

    全局变量的说明符为extern。在一个函数之前定义的全局变量,在该函数内使用时可不再加以说明。

    优缺点分析:1.全局变量可加强函数模块之间的数据联系,但使函数的独立性降低

          2.全局变量在程序的全部执行过程中都占用存储单元

    C语言的存储空间分为三部分:代码区、静态存储区、动态存储区。

    变量的存储方式分为静态存储、动态存储

    静态存储变量通常在编译时分定存储单元并一直保持不释放,直至整个程序结束。

    动态存储变量使用它时才分配存储单元, 使用完立即释放。

    变量存储类型:自动变量(局部变量)(auto)、寄存器变量(register)、外部变量(extern)、静态变量(static)

    静态局部变量:static int a;

      1.在函数内定义,但不像自动变量调用时存在,退出消失,静态局部变量始终存在

      2.作用域与局部变量相同,即只能在函数内使用

      3.在编译时赋初值,且只赋值一次;而自动变量在函数调用时赋初值,每调用一次重赋值。若不赋初值,静态局部变量编译时自动赋初值0,局部变量是个不确定的值。

    静态全局变量:作用域局限于一个文件,可避免在其他源文件中引起错误。

    静态——局部:改变生存期

    静态——全局:改变作用域,限制了使用范围

     内部函数:static int f(int a)

     外部函数:默认方式,在一个文件中调用其他文件中的外部函数时,extern int f(int a);外部函数声明(定义在其他文件中)

  • 相关阅读:
    构建之法阅读笔记07
    7-第一阶段SCRUM冲刺
    第一阶段个人冲刺博客第十天
    第一阶段个人冲刺博客第九天
    第九周学习进度博客
    java项目(学习和研究)
    让计算机干活
    os基础
    树和图的一些算法
    java代码理解
  • 原文地址:https://www.cnblogs.com/Xilian/p/3729153.html
Copyright © 2011-2022 走看看