说说static的几种含义:static局部变量,static全局变量,类中的 static数据成员,类中的static成员函数
static局部变量。在局部变量声明前加static表示这是一个“形似局部变量的静态变量”。看起来和用起来像是局部变量,但实际上他的性质跟其他的静态变量是一样的,也就是说在内存中只有一个副本,不会像局部变量那样函数调用完毕就释放。与其他静态变量不同的是他的可见性只保持在声明它的函数体内,但可以设置访问函数提供给外部使用。
static全局变量。这种用法继承自C语言,表示这个全局变量的可见性限制在声明它的源文件内(c或者cpp文件),因此不同的源文件可以使用static声明同名的全局变量而不会冲突。虽然同名,实际上在内存中是不同的全局变量。
static数据成员。表示这个成员只是逻辑上与声明它的类相关,但实际上它不属于任何一个类对象。在内存中以单例形式存在,不会随着类对象的创建和销毁而存亡。
static成员函数。实际上相当于C语言的全局函数,它没有this指针,仅在逻辑上与类相关联,在调用上线文中与任何类对象都没有关联,可以当成全局函数来使用。
static在C和C++里各代表什么含义
1.局部静态变量(C)static类型分配在静态存储区,在程序整个运行期间都不释放。static局部变量在初次运行时进行初始化工作,且只初始化一次。;2.外部静态变量\/函数(C)在C中static的第二种含义:用来表示不能被其它文件访问的全局变量和函数。3.静态数据成员\/成员函数(C++)C++重用了这个关键字,它表示...
C++里的静态成员函数(以及static其它几种用法)
2. static其它用法static的第一种含义:修饰全局变量时,表明一个全局变量只对定义在同一文件中的函数可见。static的第二种含义:修饰局部变量时,表明该变量的值不会因为函数终止而丢失。static的第三种含义:修饰函数时,表明该函数只在同一文件中调用。static的第四种含义:修饰类的数据成员,表明对该...
在C++ 中,关键字static有什么作用
static有三种用途:修饰全局变量时,用于限制该全局变量的使用范围。仅能在本文件内使用该变量。修饰局部变量时,用于修改该变量的存储控件类型。普通局部变量存储在栈区,当函数执行结束后,就会被清空。静态局部变量存储在静态区,当函数执行结束后,不会被清空。下次再次执行函数时,能保持上一回的值。修...
在c语言中或在c++中,static 是怎么用的,麻烦高人请详细说明一下,并且...
如果定义的static变量为全局变量 (1)这个static变量加载运行时会被存放在static数据区,并且会被初始化;(2)在一个大工程中假如有很多.c文件,假如这个变量被定义为static那么它的可见区域仅仅在当前文件,对于其他.c文件不可见 如果用static修饰函数 这个函数只在当前的.c文件中可见,在其他.c文件中...
static在C++中的详解
Static作用分析总结:static总是使得变量或对象的存储形式变成静态存储,连接方式变成内部连接,对于局部变量(已经是内部连接了),它仅改变其存储方式;对于全局变量(已经是静态存储了),它仅改变其连接类型。类中的static成员:一、出现原因及作用:1、需要在一个类的各个对象间交互,即需要一个数据对象...
static关键字的作用
static关键字在C++中主要起着在特定范围内定义变量、函数和数据成员的作用,同时赋予它们全局性或局部性。以下是对static关键字作用的详细解释:1. 全局静态变量 全局静态变量在全局变量前加上static关键字定义,它们位于全局静态存储区,在整个程序运行期间存在。未初始化的全局静态变量默认初始化为0,它们的...
c++ const static和static const有什么区别?
const 、static都是限定词 const 表示所修饰的对象不能被改变 static 分几中情况。1。限定定义类成员时表明该成员是所有该类对象共享的,只有一个,而不属于某个特定的对象。所以要这样引用 classname::varname;2。限定非类成员的变量时,只定义一次,忽略重复的定义。相当于全局变量,const...
C++ 的强制转换一般在什么时候用 static
C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。静态全局变量:在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。静态局部变量:在局部变量前,加上关键字static,该变量就被定义...
如何初始化C++的static Vector 类型的变量
static类型有三种,一种是全局变量(默认自带static修饰),一种是函数里的局部变量,一种是静态类成员变量。这几种可以简单的利用vector的一种构造函数,传入begin和end:include <iostream>#include <vector>using namespace std;\/\/辅助函数,打印数组void print(vector<int> & vec) {for(size_t i=0...
c语言中static关键字
一、面向过程设计中的static 1、静态全局变量 在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下:\/\/Example 1 include <iostream.h> void fn();static int n; \/\/定义静态全局变量 void main(){ n=20;cout<<n<<endl;fn();} void ...