c 作用域 链接域 存储时期
变量:
作用域:程序中该表示可被访问的区域。包括,代码块作用域和文件作用域。
代码块作用域:在代码块中定义的变量,从该变量被定义的地方到包含该定义的代码块的末尾该变量均可见。
文件作用域:一个在所有函数之外定义的变量具有文件作用域。从它定义处到包含该定义的文件结尾处都是可见的。
链接:外部链接,内部链接,空链接
空链接:代码块作用域的变量具有空链接。
外部链接:文件作用域的变量默认情况下具有外部链接。(int giants =5 ; //文件作用域,外部链接)
内部链接:文件作用域的变量用static指定时具有内部链接。(static int dodgers = 3;//文件作用域,内部链接)
存储时期:静态存储时期,动态存储时期
静态存储时期:在程序执行期间一直存在。文件作用域的变量具有静态存储时期。即静态变量(注意:对于文件作用域的变量,static与存储时期无关,与内部链接还是外部链接 有关;对于代码块作用域的变量,static 指定存储时期是静态的).其初始化语句在程序执行前执行,且只会执行一次!!
动态存储时期:在程序进入定义这些变量的代码块时,将为这些变量分配内存。代码块作用的变量默认(auto)具有动态存储时期,也可用static指定为静态存储时期。
外部变量:具有外部链接的变量。
具有内部链接的静态变量:static int stayhome = 1;