zoukankan      html  css  js  c++  java
  • 程序结构之全局变量

    全局变量定义:

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

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

      • 它们与任何函数都无关

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

    全局变量初始化:

    • 没有做初始化的全局变量会得到 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 ",__func__,gAll); // __func__ 指的是当前函数名称 f(); printf("again in %s gAll=%d ",__func__,gAll); return 0; } int f(void) { int gAll = 1; printf("in %s gAll=%d ",__func__,gAll); gAll += 2; printf("again in %s gAll=%d ",__func__,gAll); return gAll; }

    运行结果:

    in main gAll=12
    in f gAll=1
    again in f gAll=3
    again in main gAll=12
  • 相关阅读:
    (C)const关键字
    (C)volatile关键字
    蛋疼的四旋翼
    多线程之:死锁
    多线程之:ThreadLocal
    多线程之:线程同步代码块
    多线程之:线程安全
    多线程之:竞态条件&临界区
    多线程之:java线程创建
    多线程之:多线程的优缺点
  • 原文地址:https://www.cnblogs.com/songbeyond/p/12505162.html
Copyright © 2011-2022 走看看