`

C中Static修饰符的作用是什么?

阅读更多
有三个作用。

1. 隐藏
   当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。
   Static可以用作函数和变量的前缀,对于函数来讲,static的作用仅限于隐藏,而对于变量,
   static还有下面两个作用。

2. 保持变量内容的持久
   存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有
   两种变量存储在静态存储区:全局变量和static变量,只不过和全局变量比起来,static可以
   控制变量的可见范围,说到底static还是用来隐藏的。

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

相关推荐

    c语言面试经常提问到的几个修饰符

    static:修饰符:修饰变量,函数。作用域:变量仅仅在本文件可见,函数在本文件可以被调用。static在函数内部定义的话,分配在堆中,数值保存在data段,而不是在栈中,而且只赋值一次。 extern:修饰符:修饰变量,...

    C/C++中static,const,inline三种关键字详细总结

    一、关于staticstatic 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性,下面我将从 static 修饰符的产生原因、作用谈起,全面分析static 修饰符的实质。 static 的两大作用: 一、控制存储方式 static...

    c++中的static修饰符示例详解

    本文主要给大家介绍了关于c++中static修饰符的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 下面一段是引用自effective c++ 中的一句话: 所谓的static对象,其寿命是从构造出来到...

    extern_volatile等修饰符的用法

    static修饰符用于声明静态变量或静态成员函数。 1. 静态变量 静态变量的作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,可以被修改。 2. 函数内部的静态变量 函数内部的静态变量...

    浅析php变量修饰符static的使用

    静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。看看下面的例子:复制代码 代码如下:function test(){static $a=0;... 您可能感兴趣的文章:浅谈php中的访问修饰符private、protected、p

    C 语言编程常见问题解答.chm

    5 什么时候应该使用register修饰符?它真的有用吗? 2. 6 什么时候应该使用volatile修饰符? 2. 7 一个变量可以同时被说明为const和volatile吗? 2. 8 什么时候应该使用const修饰符? 2. 9 浮点数比较(floating—...

    C语言编程要点

    2.5. 什么时候应该使用register修饰符?它真的有用吗? 21 2.6. 什么时候应该使用volatile修饰符? 21 2.7. 一个变量可以同时被说明为const和volatile吗? 22 2.8. 什么时候应该使用const修饰符? 23 2.9. 浮点数比较...

    C学习深入学习总结

    2.3 static修饰的全局变量和函数,在其他的文件中是否可以访问?如何访问? 5 2.4 你知道static是c语言中实现封装和隐藏的利器吗?你是否经常使用? 5 2.5 定义在不同源文件中的static全局变量,编译器是否允许他们...

    三个修饰符(abstract、static、final)

    abstract修饰类 (1) 被abstract修饰的类是抽象类,编译后生成独立class文件 (2) 抽象类不能单独new对象,但可以声明引用 (3) 抽象类可以定义成员变量和成员方法 (4) 抽象类可以有构造,但不用于new对象,而是用于子类...

    static、this、super、final的JAVA用法

    final 关键字是 Java 中的一个访问修饰符,用于限制变量、方法或类的访问权限。final 变量一旦被初始化后不能被修改,final 方法不能被重写,final 类不能被继承,例如: public class FinalTest{ public static ...

    资深互联网大佬的5000字吐血总结——Java面向对象三大修饰符之abstract、static、final

    static 可以修饰初始化代码块扩充内容三、final(最终的,最后的)1.final可以修饰变量2.final可以修饰方法3.final可以修饰类总结abstract、static、final可以修饰的内容abstract、static、final是否可以修饰构造...

    PHP中Static(静态)关键字功能与用法实例分析

    static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。但在PHP中用 static 关键字来定义静态方法和属性, 也可用于定义静态变量以及后期静态绑定。 2、为什么要引入static? 函数内部定义的变量,在...

    C#中static静态变量的用法实例

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

    浅谈C#基础之类的访问修饰符

    1.类中成员的访问修饰符 方位修饰符就是确定该成员能够访问(使用)的区域。C#中常用的有如下修饰符:pubic(公有)、private(私有)、internal(内联)、protected(受保护)。举例说明各个修饰符的限制区域。 ...

    J2SE技术基础摸底试卷

    (2)下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问? A)private B)无修饰符 C)public D)protected (3)给出下列代码,如何使成员变量m 被方法fun()直接访问? class Test { private ...

    C#中const 和 readonly 修饰符的用法详解

    2. readonly 是在字段上使用的修饰符,直接以类名.字段访问。 3. const 必须在申明中初始化。之后不能再修改。 4. readonly可以在申明中初始化,也可以在构造函数中初始化,其它情况不能修改。 namespace const_and...

    达内JAVA面试题

    达内发给java学员的面试题库,题目包含达内培训java所涉及的所有内容。

    华为java笔试面试题.pdf

    (答:abstract 修饰符可修饰字段、方法和类) 数据库知识 1. Java 中的包 java.sql 是用来做什么的?(答:提供 Java 存取数据库能力) 多项选择题 1. Java 程序的种类有哪些?(答:类、Applet、Application、...

    C语言基础day6作业

    C语言基础day6作业中涵盖了C语言的多个重要知识点,包括跳转语句、数组、分支主题、数据类型、变量修饰符等。 一、跳转语句 跳转语句是C语言中的一种控制流语句,用于跳转程序的执行流程。跳转语句包括break、...

Global site tag (gtag.js) - Google Analytics