关键字static的意思是静态,有3个明显作用:

1)在函数体内,静态变量具有"记忆"功能。即在函数被调用过程中,一个被声明为静态变量的值维持不变。

static局部变量和普通局部变量的区别:static局部变量只被初始化一次,下一次的运算依据上一次的结果值。

2)在模块内,但在函数体外,它的作用域范围是有限制的。static类型的变量,是本地的全局变量。所以,可以被模块内的所有函数访问,不可以被模块外的函数访问。

static类型的函数,与普通类型函数的作用域不一样。静态函数的作用域仅在本文件中,只可被模块内的其它函数调用,不能被模块外的其它函数调用。

3)与类有关的static:

static数据成员特点:

(1)对于非静态数据成员,每个类对象都有自己的复制品;而静态数据成员被当做类的成员。无论有多少个对象,静态数据成员只有一个复制品,由类的所有对象共享访问。

(2)static数据成员存储在全局数据区。定义时要分配内存空间,所以不能在类声明中定义。由于类的所有对象共享,不属于特定的类对象,所以,没有产生类对象时,其作用于可见。

(3)和普通数据成员一样,遵从public,private,protected访问规则。

(4)必须初始化;static成员变量的初始化是在类外。初始化时不带上static的关键字。private、protected的static成员虽然可以在类外初始化,但是不能在类外被访问。

static成员函数特点:

静态成员函数是类的内部实现,属于类定义的一部分。普通成员函数一般隐含this指针,指向类的对象本身,因为普通成员函数总是具体的属于某个类的具体对象,所以this是默认的。而静态成员函数由于不是与任何对象相联系,因此不具有this指针。从这个意义讲,它无法访问属于类对象的非静态数据成员,也无法访问非静态成员函数,只能调用静态数据成员和静态成员函数。

static变量有什么作用相关推荐

  1. static变量的作用(转)

    1. 在函数体内,静态变量具有记忆作用,即一个被声明为静态的变量在这一函数被调用的过程中其值维持不变. 2. 在模块内(但在函数体外),它的作用域范围是有限制的,如果一个变量被声明为静态的,那么该变量 ...

  2. Java中static变量作用和用法详解

    static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static ...

  3. java中静态变量的作用_Java中static变量作用和用法详解

    static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static ...

  4. 局部变量和static变量

    局部变量:指在程序中,只在特定过程或函数中可以访问的变量,是相对于全局变量而言的.在C++.C#.Ruby这些面向对象语言中,一般只使用局部变量.在面向对象编程中现在普遍采用的是软件开发方法,因此无需 ...

  5. (转)static 变量

    一. static 变量 static变量大致分为三种用法 1. 用于局部变量中,成为静态局部变量. 静态局部变量有两个用法,记忆功能和全局生存期. 2. 用于全局变量,主要作用是限制此全局变量被其他 ...

  6. c语言中的static变量和static函数

    在C语言中,static的字面意思很容易把我们导入歧途,其实它的修饰变量作用有三条. (1)先来介绍它的第一条也是最重要的一条:隐藏. 当我们同时编译多个文件时,所有未加static前缀的全局变量和函 ...

  7. UNITY编辑器模式下static变量的坑

    UNITY编辑器模式下static变量的坑 在unity中写编辑器扩展工具,如在编辑器中加个菜单,点击这个菜单项时执行打包功能. 类如下,其中的静态变量,如果每次进来不清空,则LIST会越来越大,打包 ...

  8. static变量 static函数

    首先要明白c语言的存储空间 转自:http://www.52rd.com/blog/Detail_RD.Blog_imjacob_5297.html 一.c程序存储空间布局 C程序一直由下列部分组成: ...

  9. java的静态变量怎么赋值_java static变量可以赋值吗?

    java static变量可以赋值吗? 可以赋值的.static的主要作用是静态成员,指该变量的实例在内存中之存放一次.赋值是可以随便改的. java中static关键字 static是java中非常 ...

最新文章

  1. 【转载】在服务器上用Fiddler抓取HTTPS流量
  2. LeetCode Climbing Stairs
  3. 在 Visual Studio Code 里编辑 Excel 和 csv 文件两个比较方便的扩展应用
  4. web之Attribute
  5. CentOS7连接无线网络
  6. fm信号表达式_chirp信号表达式
  7. Android打开系统文件管理器
  8. GridView中DataFormatString属性的取值
  9. Java开发发送短信功能的实战教程(真实项目已在使用)
  10. phpnow php升级,phpnow如何升级php版本
  11. 十四首中国现代诗巅峰之作
  12. Windows Server 2012 R2 安装补丁
  13. win 10系统语言栏不见了怎么办?
  14. 3D游戏中镜头的运用
  15. Android 关闭屏幕方法
  16. asp数组函数LBound 、UBound和Split
  17. 【转载】目前市场上主流的BI产品主要有哪些?
  18. 【目标检测--tricks】FPN和PAN
  19. Java设计模式面试题及答案(持续更新。。。)
  20. vue调用扫码枪扫描条形码,并删除上一次输入框的内容

热门文章

  1. 聊聊目标检测中的多尺度检测(Multi-Scale),从YOLO,ssd到FPN,SNIPER,SSD填坑贴和极大极小目标识别
  2. 云计算 大数据 人工智能 三者之间关系
  3. leetcode(7): easy2
  4. 头歌Educoder——Java高级特性 - JDBC(上)
  5. 计算机词汇app有哪些,APP推荐 | 有哪些APP独得学霸恩宠?
  6. 正则表达式匹配非某字符串的情况
  7. 一元函数、多元函数的泰勒公式
  8. 16代表啥_形势严峻下的医药代表如何不被淘汰
  9. MacBook 查询电池健康情况、电池损耗、当前电量的方法
  10. Mysql复习资料整理