笔记:C++中static的作用总结

1.隐藏

当我们同时编译多个文件的时候,所有没加static的全局变量和函数都具有全局可见性,其他的源文件也可以访问

如果加了static,就会对其他源文件隐藏,利用这个特性可以在不同的文件中定义同名函数和同名变量,不用担心命名冲突。

2.对于变量,static还可以:保持变量内容的持久

存储在静态数据区的变量会在第一次运行到的时候完成初始化,也是唯一的一次初始化。

有2种变量存储在静态存储区:全局变量和静态变量

比起全局变量,static更加可以控制变量的可见范围

3.对于变量,static默认初始化为0

注意:

全局变量和static全局变量的区别:

作用域

局部变量和static局部变量的区别:

生存期

static局部变量只被初始化一次,以后根据上一次结果值

static函数与普通函数的区别:

作用域

时间: 2024-10-13 09:31:46

笔记:C++中static的作用总结的相关文章

C/C++中static关键字作用总结

1.先来介绍它的第一条也是最重要的一条:隐藏.(static函数,static变量均可) 当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性.举例来说明.同时编译两个源文件,一个是a.c,另一个是main.c. 1 //a.c 2 char a = 'A'; // global variable 3 void msg() 4 { 5 printf("Hello\n"); 6 } //main.c int main() { extern char a; //

C/C++中static关键字作用总结[转]

1.先来介绍它的第一条也是最重要的一条:隐藏.(static函数,static变量均可) 当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性.举例来说明.同时编译两个源文件,一个是a.c,另一个是main.c. //a.c char a = 'A'; // global variable void msg() { printf("Hello\n"); } //main.c int main() { extern char a; // extern varia

C中Static的作用

在C中定义一个变量将意味什么? 1.规定变量的取值范围.2.规定变量的操作3.规定变量的作用域(或者生命周期.或者访问控制)4.规定了变量的存储方式(或者存储格式). 在纯C中Static有两个作用(不考虑C++以及二则混合使用): 1.Static修饰局部变量:该变量能在所定义的函数中共享(参考例一). 2.Static修饰全局变量或函数:该变量或函数只在所定义的文件中可见(参考例一). 例一: void foo(void){ static int i = 10; int j = 10; i

C++中static关键字作用总结

1.先来介绍它的第一条也是最重要的一条:隐藏.(static函数,static变量均可) 当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性.举例来说明.同时编译两个源文件,一个是a.c,另一个是main.c. //a.c char a = 'A'; // global variable void msg() { printf("Hello\n"); } //main.c int main() { extern char a; // extern varia

C/C++中static的作用

static主要有三个作用: (1)局部静态变量 (2)外部静态变量/函数 (3)静态数据成员/成员函数 前两种C和C++都有,第三种仅在C++中有,下面分别作以下介绍: 一.局部静态变量 在C/C++中, 局部变量按照存储形式可分为三种auto, static, register.其中register不常用到,下面主要说说auto和static的区别. 存储空间分配和生存周期不同 auto类型局部变量就是普通的局部变量(不加修饰的局部变量默认为该类型).该类型局部变量存储在栈上,在动态存储区,

001.java中static的作用

static的作用: 1.将对象层级提升为类层级 (即将对象可以调用的,提升为对象和类均可调用的成员):   //推荐使用类来调用   ClassNme.静态成员 (包括变量.方法.成员对象) 2.static修饰的成员,在类加载时即准备完成,而不需要创建对象:   //类加载只做一次:1  类名. 的时候会类加载; 2  new 对象时会类加载 3.静态成员方法只能访问静态成员,不能访问非静态成员(因为调用该方法时可能还没有创建对象):    而非静态成员方法既能访问非静态成员,又能访问静态成

JAVA中static什么作用?

是静态修饰符,什么叫静态修饰符呢?大家都知道,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,也就是只要程序在运行,那么这块内存就会一直存在.这样做有什么意义呢? 在Java程序里面,所有的东西都是对象,而对象的抽象就是类,对于一个类而言,如果要使用他的成员,那么普通情况下必须先实例化对象后,通过对象的引用才能够访问这些成员,但是有种情况例外,就是该成员是用static声明的(在这里所讲排除了类的访

C++中static的作用

1.隐藏: 当同时编译多个文件时,所有未加static的全局变量或函数都具有全局可见性,即在另一个文件中使用extern关键字即可访问该变量或函数.使用static可以将全局变量或函数的作用域限制在一个文件里. 2.保持变量值的持久性: 当static修饰函数体内局部变量时,该局部变量将拥有全局生存期,并且该变量只会初始化一次,下一次调用该函数时,该变量的值与上一次调用时的值一致. 3.默认初始化为0: 在静态存储区中,内存中所有的字节默认值都是0,所以存储在静态存储区的变量如果未主动初始化,那

java中static的作用

1.static表示“全局“或者静态的意思.用来修饰成员变量和成员方法,也可以形成静态static代码,被static修饰的成员变量和成员方法独自于该类的任何对象.也就是说,它不依赖类特定的实例,被类的所有实例共享(因此可以用來统计一个类有多少个实例化对象),所以有些属性希望被所有对象共享,则必须将其声明为static属性,被static声明的属性成为全局属性. 2.只要这个类被加载,Java虚拟Papers 机就能根据类名在运行时数据区的方法区内定找到他们.因此,static对象可以在它的任何