程序结构之全局变量

全局变量定义:

  • 定义在函数外的变量是全局变量

  • 全局变量具有全局的生存期和作用域

    • 它们与任何函数都无关

    • 在任何函数内部都可以使用

全局变量初始化:

  • 没有做初始化的全局变量会得到 0 值 (局部变量会得到随机值)

    • 指针会得到NULL
  • 只能用编译时刻已知的值来初始化全局变量

  • 它们的初始化发生在main函数之前

被隐藏的全局变量:

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

实例:

#include <stdio.h>

int f(void);

int gAll = 12;

//int gAll = f(); 用编译时刻未知的值初始化,编译不能通过
int main(int argc,char const *argv[]) { printf("in %s gAll=%d\n",__func__,gAll); // __func__ 指的是当前函数名称 f(); printf("again in %s gAll=%d\n",__func__,gAll); return 0; } int f(void) { int gAll = 1; printf("in %s gAll=%d\n",__func__,gAll); gAll += 2; printf("again in %s gAll=%d\n",__func__,gAll); return gAll; }

运行结果:

in main gAll=12
in f gAll=1
again in f gAll=3
again in main gAll=12

猜你喜欢

转载自www.cnblogs.com/songbeyond/p/12505162.html