被static 修饰的变量全部称为静态变量。所有的静态变量全部存储在静态存储区。按静态变量定义的位置不同,又分为全局静态变量和局部静态变量。

  1)全局静态变量

    在全局变量的说明前加上static,就是全局静态变量。实际上全局变量全部存储在静态存储区(不管有木有加上static,全局变量都是存储在静态存储区)。

但二者还是有区别的,区别在于作用域的扩展上。非静态的全局变量作用域可用extern扩展到组成源程序的多个文件,而静态全局变量的作用域只限于本文件。

对于static修饰的函数也是。

2)局部静态变量

    指的是在某个函数中用关键字static定义的变量,这种变量的作用范围它的函数中起作用,但是它存储在静态存储区中。一个函数在返回时将其所占有的内存

交还给系统,但如果这个函数中定义有静态变量,函数在返回时这个静态变量不会被释放,仍然保存它的值,如果再次调用这个函数时,就可以直接使用这个保

存下来的值。

3)默认初始化为0

    其实全局变量也具备这一属性,因为全局变量也存储在静态数据区。在静态数据区,内存中所有的字节默认值都是0x00,某些时候这一特点可以减少程序员

的工作量。

  同时可以参考这个,更详细:http://www.cnblogs.com/stoneJin/archive/2011/09/21/2183313.html

static 变量的更多相关文章

  1. Asp.net中static变量和viewstate的使用方法(谨慎)

    在.Net平台下进行CS软件开发时,我们经常遇到以后还要用到某些变量上次修改后的值,为了简单起见,很多人都习惯用static来定义这些变量,我也是.这样非常方便,下一次调用某个函数时该变量仍然保存的是 ...

  2. ecmall中static变量的使用-model模型代码设计

    function &m($model_name, $params = array(), $is_new = false) { static $models = array(); $model_ ...

  3. objective-c static变量的使用总结

    在java中,我们经常使用的是单例模式,这些设计模式在ios开发中也比较常用,最近也在考虑使用在ios开发中使用单例模式 在objective-c中,需要在.m文件里面定义个static变量来表示全局 ...

  4. 调整static变量初始化顺序的一个办法

    // wrap the LaunchDir variable in a function to work around static/global initialization order stati ...

  5. spring为什么不能注入static变量

    Spring 依赖注入 是依赖 set方法 set方法是 是普通的对象方法 static变量是类的属性 @Autowired private static JdbcTemplate jdbcTempl ...

  6. static变量在php和java中的生命周期

    1. java的static变量伴随着java虚拟机的退出而消亡,java虚拟机运行期间,static变量一直存在 2. php的static变量只针对一次请求(一次php文件的执行),php文件执行 ...

  7. 转:C语言中的static变量和C++静态数据成员(static member)

    转自:C语言中的static变量和C++静态数据成员(static member) C语言中static的变量:1).static局部变量        a.静态局部变量在函数内定义,生存期为整个程序 ...

  8. C语言中static变量详解

    Static翻译出来是“静态”“静止”的意思,在C语言中的意思其实和它的本意差不多,表示“静态”或者“全局”的意思,用来修饰变量和函数.经static修饰过后的变量或者函数的作用域或者存储域会发生变化 ...

  9. java中的static变量

    java中的static变量 例如 public static int num=0: num+=1;放在函数里面 调用一次变动一次.

  10. c++ 类与函数中static变量初始化问题(转)

    首先static变量只有一次初始化,不管在类中还是在函数中..有这样一个函数: void Foo() { ; // initialize std::cout << a; a++; } 里的 ...

随机推荐

  1. php开发工具。。

    看了好多决定用phpstorm. hahaha PHP还是挺好玩的 但是貌似犯蠢一下,MAC自带有php环境: 我还下了一个XAMPP,不过无所谓啦. 都可以用

  2. Do It Wrong, Get It Right

    Do It Wrong, Get It Right Time Limit: 5000ms, Special Time Limit:12500ms, Memory Limit:65536KB Total ...

  3. 外观模式(Facade Pattern)

    一.引言 在软件开发过程中,客户端程序经常会与复杂系统的内部子系统进行耦合,从而导致客户端程序随着子系统的变化而变化,然而为了将复杂系统的内部子系统与客户端之间的依赖解耦,从而就有了外观模式,也称作 ...

  4. stl 初步的使用

    1.sort 和  lower_bound 例如     marble      https://uva.onlinejudge.org/index.php?option=com_onlinejudg ...

  5. mesos INSTALL

    $ git clone https://github.com/mesosphere/playa-mesos $ cd playa-mesos $ vagrant up --provision

  6. IT 相关期刊

    码农周刊查阅地址: http://weekly.manong.io/issues/ 快乐码农查阅地址: http://www.codeceo.com/article/category/weekly

  7. 数据库之mysql存储程序

    什么时候会用到存储过程 1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度2.当对数据库进行复杂操作时 ...

  8. Centreon 监控报警

    1.系统更新:yum update 2.安装组件:yum install -y httpd php-pear php php-mysql php-gd php-ldap php-xml php-mbs ...

  9. loose coupling之函数签名

    当函数的参数有多个时(比如多于4个),可以考虑将这些参数组织放入一个class(struct),然后函数参数就减少为一个. 1.以class instance来穿参数,可以很容易在各个函数之间传递参数 ...

  10. [经验交流] 简单安装 centreon 3.2

    centreon 是一个自动化监控平台,监控数据存储在 mysql 中,监控配置在UI中操作,方便且功能强大. 1. centreon 监控引擎 centreon 可以与 nagios 结合,使用 n ...