zoukankan      html  css  js  c++  java
  • 全局变量的声明与定义

    全局位置的注意点,就是在全局的位置是不能够写一些执行语句的,只能写一些全局变量的定义,并且初始化的话也只能用常量进行初始化

    int e=1;这就可以,所以在全局的这个位置,只能用常量进行初始化

    对于指针也一样,不要  int * p=(int *)malloc(4);  不可以,用一个变量都不可以,何况用一个函数。 

    另外,想在全局变量的位置 执行一个printf,打印一个 printf("asd"); 能不能打印???谁调用的它??

    所以,全局变量的位置》》》除了包含头文件这些预处理指令之外,这块能够写的东西就是全局变量,而且不要用变量初始化,也不能用函数初始化,只能用常量给全局变量初始化,另外全局的位置是不能写执行语句的,这块只认声明和变量的定义。

    接下来看全局变量的生命周期:

    与程序共存亡。

    int e 是在程序加载的时候分配的空间,在程序正式运行之前(在主函数main调用之前)分配的空间。当执行到int a的时候,上面的这些东西都已经分配好了。

    结束时 关闭程序/关闭软件,才会被释放掉。

    接下来说作用域:
    因为是全局变量,全局就是整个项目,所有的文件都认识这个 e。

     

    既然声明可以出现多个(int e;),那么一般的把全局变量的声明放在头文件里面,其他的文件一包含头文件就可以了,而定义(int e=12;)只能放在源文件中,定义如果放在头文件中,那么其他文件一包含,e就重定义了。所以全局变量的声明可以放在头文件里,全局变量的定义只能放在.c源文件中。

  • 相关阅读:
    昨晚睡不着觉,测这周运气
    老大让我看baidu他们的查公交是怎么做的,我就看了
    破逼Json,该死的Json库,操了
    我真的好累,实在不知道该怎么办了
    今晚刚回家,给人算了一卦运气
    bzoj4590[Shoi2015]自动刷题机
    bzoj4552[Tjoi2016&Heoi2016]排序
    bzoj3155Preprefix sum
    bzoj2463[中山市选2009]谁能赢呢?
    bzoj3668[Noi2014]起床困难综合症
  • 原文地址:https://www.cnblogs.com/dabing0983/p/10569958.html
Copyright © 2011-2022 走看看