static 表示静态
 
作用:
1、在函数体内,静态变量的值维持不变(记忆功能)
2、是一个本地的全局函数,即只能被本模块的函数访问(隐藏功能)
 
static变量:
static全局变量和普通全局变量的区别:static变量只初始化一次(即不能重复定义),这样可以防止在其他文件单元中被引用
static局部变量和普通局部变量的区别:static变量值初始一次,下次的运算依据是上一次的值(第二次碰到初始化语句直接跳过即可)
 
static函数:
static函数只能在一个源文件中有效,在其他源文件无效
 
类中的static:
1、无论类对象被定义多少个,静态数据成员始终只有一份,用作共享
2、静态数据成员存储在全局数据区,定义时要分配空间,即使类没有被实例化,静态数据成员也可以被使用
3、遵从public、private、protect访问
4、static的成员函数在类外初始化(类中只是声明,cpp中才是初始化),但此时不要加static关键字
5、static数据成员没有this指针(普通的类成员函数都有),因此不能访问类中的非静态成员函数,只能访问成员函数
 
优点:
1、不存在全局名字冲突
2、信息可以隐藏,可以为private
 
注:不要在头文件定义静态变量,不要在头文件定义任何变量

C++基础之static(静态)变量的更多相关文章

  1. android 尽量不要使用static静态变量

    使用静态static静态变量潜在性问题: 1.占用内存,并且内存一般不会释放: 2.在系统不够内存情况下会自动回收静态内存,这样就会引起访问全局静态错误. 3.不能将activity作为static静 ...

  2. PHP之static静态变量详解(一)

    什么是static静态变量?(以下为在C语言中的理解) 静态变量 类型说明符是static. 静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在静态存储区内分配存储单元),该 区域中的数据在 ...

  3. C#中static静态变量的用法

    使用 static 修饰符声明属于类型本身而不是属于特定对象的静态成员static修饰符可用于类.字段.方法.属性.运算符.事件和构造函数,但不能用于索引器.析构函数或类以外的类型 静态全局变量 定义 ...

  4. [转] C# 中的static静态变量

    logitechyan原文关于C#中static静态变量 C#静态变量使用static 修饰符进行声明,在类被实例化时创建,通过类进行访问不带有 static 修饰符声明的变量称做非静态变量,在对象被 ...

  5. 关于C#中static静态变量

    C#静态变量使用static 修饰符进行声明,在类被实例化时创建,通过类进行访问不带有 static 修饰符声明的变量称做非静态变量,在对象被实例化时创建,通过对象进行访问一个类的所有实例的同一C#静 ...

  6. C#中的static静态变量的用法

    静态全局变量 定义:在全局变量前,加上关键字 static 该变量就被定义成为了一个静态全局变量. 特点: A.该变量在全局数据区分配内存. B.初始化:如果不显式初始化,那么将被隐式初始化为0. 静 ...

  7. php中的static静态变量

    今天碰到了一个php的小试题,一直没有明白为什么第三次循环是static静态变量没有起作用呢?想了好久才明白原理. <?php class MyClass{ function add($b){ ...

  8. C语言 static静态变量

    静态变量类型说明符是static. 静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在 静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间 ...

  9. Static静态变量和非静态变量

    Static静态变量:   不同的对象共享这个变量的存储空间 而不是静态变量   每个对象具有可变的存储器空间 public class StaticDemo { private int count= ...

  10. jvm源码解读--09 创建oop对象,将static静态变量放置在oop的96 offset处 第二篇

    先打断点systemDictionary.cpp 1915行 Universe::fixup_mirrors(CHECK); 进入 void Universe::fixup_mirrors(TRAPS ...

随机推荐

  1. 区间查询异或最大值——cf1100F,hdu6579

    cf1100F是静态区间查询最大值,有离线的解法,我感觉线段树或者莫队应该都能过 更优秀的解法可以在线并支持修改,可以解决hdu6579,即依次插入每个数,pos[i][j]表示在插第i个数时第j个基 ...

  2. [CF1082G]Petya and Graph:最小割

    分析 发这篇博客的目的就是要让你们知道博主到底有多菜. 类似于[NOI2006]最大获利.(明明就是一模一样好吧!) 不知道怎么了,半秒就想到用网络流,却没想出怎么建图. 连这么简单的题都没做出来,我 ...

  3. es之词库热更新解决方案

    1. 下载tomcat,作为远程词库的容器 , 需要在tomcat中配置词库 /webapp/ROOT这个路径下新建一个远程词库:​Vim hot.dicHot.dic中存放的就是实时热词 2.测试t ...

  4. Kaggle 入门资料

    kaggle入门之如何使用 - CSDN博客 http://blog.csdn.net/mdjxy63/article/details/78221955 kaggle比赛之路(一) -- 新手注册账号 ...

  5. 按ECS退出全屏模式

    <!DOCTYPE html><html><meta http-equiv="Content-Type" content="text/htm ...

  6. 大数据笔记(十七)——Pig的安装及环境配置、数据模型

    一.Pig简介和Pig的安装配置 1.最早是由Yahoo开发,后来给了Apache 2.支持语言:PigLatin 类似SQL 3.翻译器 PigLatin ---> MapReduce(Spa ...

  7. 我的"开发工具箱"

    我使用的IDEA插件 Free Mybatis plugin Alibaba Java Coding Guidelines 我的IDEA开发配置 配置Maven Runner -DarchetypeC ...

  8. leetcode 142. 环形链表 II(c++)

    给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 pos 是 - ...

  9. MVC4:ajax Json 应用

    1)Json基础 2)Json 字符串和Json对象 3)应用例子 4)JsonHelper 1)Json 基础 JSON中对象通过"{}"来标识,一个"{}" ...

  10. log4j.rootLogger作用域

    log4j.rootLogger只对没有申明appender的包起作用: