zoukankan      html  css  js  c++  java
  • 十四、程序结构(1)——全局变量

    全局变量

    (1)定义在函数外面的变量是全局变量

    (2)全局变量具有全局的生存期和作用域

    ——它们与任何函数都无关。

    ——在任何函数内部都可以使用它们。

    全局变量初始化

    (1)没有做初始化的全局变量会得到0值

    ——指针会得到BULL值

    (2)只能用编译时刻已知的值来初始化全局变量

    (3)它们的初始化发生在main函数之前

    被隐藏的全局变量

    如果函数内部存在于全局变量同名的变量,则全局变量被隐藏。

    静态本地变量

    (1)在本地变量定义时加上static 修饰符就成为静态本地变量

    (2)当函数离开的时候,静态本地变量会继续存在并保持其值

    (3)静态本地变量的初始化只会在第一次进入这个函数时做,以后进入函数时会保持上次离开时的值。

    (4)静态本地变量实际上是特殊的全局变量

    (5)它们位于相同的内存区域

    (6)静态本地变量具有全局的生存期,函数内的局部作用域

    ——static 在这里的意思是局部作用域(本地可访问)

    *返回指针的函数

    (1)返回本地变量的地址是危险的

    (2)返回全局变量或静态本地变量的地址是安全的

    (3)返回在函数内malloc的内存是安全的,但是容易造成问题

    (4)最好的做法是返回传入的指针。

    tips

    (1)不要使用全局变量来在函数间传递参数和结果

    (2)尽量避免使用全局变量

    ——丰田汽车的案子

    (4)*使用全局变量和静态本地变量的函数是线程不安全的

     

  • 相关阅读:
    Luogu P5030 长脖子鹿放置(网络流)
    BZOJ3037 创世纪(基环树DP)
    LuoguP1240 诸侯安置
    LuoguP3128 [USACO15DEC]最大流Max Flow (树上差分)
    总结-一本通提高篇&算竞进阶记录
    LuoguP5022 旅行 (割点,基环树)
    $tsinsenA1067$
    $SCOJ4427 Miss Zhao's Graph$
    $Edmonds-Karp$[网络流]
    $AC自动机$
  • 原文地址:https://www.cnblogs.com/Strugglinggirl/p/9080364.html
Copyright © 2011-2022 走看看