• 技术文章 >C语言 >C语言教程

    c语言中static全局静态变量的介绍

    小妮浅浅小妮浅浅2021-09-28 15:45:24原创119

    1、static全局变量只初使化一次。

    2、在单个.h或者.c文件中,普通全局变量和static修饰的全局静态变量是一样的。

    3、static修饰的变量都存放在静态数据区,内存中所有的字节默认值都是0x00。

    实例

    #include <stdio.h>
     
    int globalNum = 100;//全局变量
    int gAddr_for_static = 0; //用来保存函数里的静态变量地址
     
    void test_static_temp(){
        static int value_static = 10;//局部静态变量
        printf("<-> value_static,addr=%x,value=%d \n\n",&value_static,value_static);
        gAddr_for_static = &value_static;
        
    }
     
    //通过指针修改任何全局变量!静态变量!
    void SetGlobalValue(int address,int v){
        int *pt;
        pt= address;
        *pt = v;
    }
     
    int main(void) {
        
        test_static_temp();//从输出得到静态变量的地址
        int addr = &globalNum;
        printf("<1> 初始化全局变量globelNum=%d ,内存地址=%x \n\n" , globalNum,&globalNum);
        SetGlobalValue(addr,1234);
        printf("<2> 调用函数后globelNum=%d,内存地址=%x \n\n" , globalNum,&globalNum);
        
        addr = gAddr_for_static;//每个编译器得到的地址不同
        SetGlobalValue(addr,4567);
        test_static_temp();
        
        return 0;
    }

    以上就是c语言中static全局静态变量的介绍,希望对大家有所帮助。更多C语言学习指路:C语言教程

    专题推荐:c语言 static
    品易云
    上一篇:c语言中static修饰局部静态变量 下一篇:c语言中static如何修饰函数

    相关文章推荐

    • c语言中的指针是什么• c语言中数组访问越界如何理解• c语言中如何防止数组下标越界• c语言中函数的理解• c语言中函数返回值的讨论• c语言中函数参数类型的探究• c语言中函数的声明和定义• c语言如何避免野指针产生• c语言中常规函数和指针函数区别• c语言中回调函数的使用• c语言中缺省参数的两种类型• c语言和javascript的区别• c语言中static修饰局部静态变量

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网