1. c语言中static说明是什么意思
在C语言中,static关键字的作用如下:
1、在修饰变量的时,static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。
2、static修饰全局变量的时,这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是extern外部声明也不可以。
3、static修饰一个函数,则这个函数的只能在本文件中调用,不能被其他文件调用。Static修饰的局部变量存放在全局数据区的静态变量区。
(1)c语言static是什么扩展阅读:
static关键字在C语言、C++、java中的作用有着相似之处,但也存在差异:
一、C++的static用法:
1、面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。
2、在类中,static可以用来修饰静态数据成员和静态成员方法
静态数据成员
(1)静态数据成员可以实现多个对象之间的数据共享,它是类的所有对象的共享成员,它在内存中只占一份空间,如果改变它的值,则各对象中这个数据成员的值都被改变。
(2)静态数据成员是在程序开始运行时被分配空间,到程序结束之后才释放,只要类中指定了静态数据成员,即使不定义对象,也会为静态数据成员分配空间。
(3)静态数据成员既可以通过对象名引用,也可以通过类名引用。
静态成员函数
(1)静态成员函数和静态数据成员一样,他们都属于类的静态成员,而不是对象成员。
(2)非静态成员函数有this指针,而静态成员函数没有this指针。
(3)静态成员函数主要用来方位静态数据成员而不能访问非静态成员。
二、java的static用法:
1、声明为static的变量称为静态变量或类变量。可以直接通过类名引用静态变量,也可以通过实例名来引用静态变量,但最好采用前者,因为后者容易混淆静态变量和一般变量。
2、声明为static的方法称为静态方法或类方法。静态方法可以直接调用静态方法,访问静态变量,但是不能直接访问实例变量和实例方法。静态方法中不能使用this关键字,因为静态方法不属于任何一个实例。
参考资料来源:网络-static(计算机高级语言)
2. C语言中static是什么意思
静态常量,就是所有的类都共享的一块内存
在一个进程里有且只有一个这样的同名变量
3. C语言中static是做什么用的
有两种用法:
1、static修饰局部变量,成为一个局部静态变量。
static修饰局部变量(静态局部变量)与普通局部变量相比,它的优势在于:
①静态局部变量作用域与连接属性与普通局部变量一样;
②存储类:静态局部变量分配在data/bss段,普通局部变量在栈上;
③生命周期:因为存储类的不同,静态局部变量的生命周期得到延长了,直到程序结束。
2、static修饰全局变量与函数,成为静态全局变量与静态函数。
static修饰全局变量函数 与 普通全局变量普通函数相比,它的优势在于:
①存储类、生命周期、作用域都一样;
②差别在于static修饰全局变量函数连接属性是内连接,普通全局变量普通函数是外链接;
③就是说static修饰全局变量函数不能跨文件访问调用。
(3)c语言static是什么扩展阅读:
在类内数据成员的声明前加上static关键字,该数据成员就是类内的静态数据成员。其特点如下:
静态数据成员存储在全局数据区,静态数据成员在定义时分配存储空间,所以不能在类声明中定义
静态数据成员是类的成员,无论定义了多少个类的对象,静态数据成员的拷贝只有一个,且对该类的所有对象可见。也就是说任一对象都可以对静态数据成员进行操作。而对于非静态数据成员,每个对象都有自己的一份拷贝。
由于上面的原因,静态数据成员不属于任何对象,在没有类的实例时其作用域就可见,在没有任何对象时,就可以进行操作
和普通数据成员一样,静态数据成员也遵从public, protected, private访问规则
静态数据成员的初始化格式:<数据类型><类名>::<静态数据成员名>=<值>
类的静态数据成员有两种访问方式:<类对象名>.<静态数据成员名> 或 <类类型名>::<静态数据成员名>
4. c语言中static 到底有啥作用啊
static是静态声明,用static声明的变量生存期比普通变量长,因此f()函数多次运行静态变量的值一直存在
5. c语言里static到底什么意思
没有static定义的变量只能在它所在的函数里用,有static的变量就是定义在整个程序中的
6. c语言中的static是什么
static
用来说明静态变量。
如果是在函数外面定义的,那么其效果和全局变量类似,但是,static定义的变量只能在当前c程序文件中使用,在另一个c代码里面,即使使用extern关键词也不能访问这个static变量。
如果是在函数内部定义的,那么这个变量只初始化一次,即使再次调用这个函数,这个static变量也不会再次被初始化,于是,这个变量的取值就会一直保存着,也就是说,当你再次调用这个函数的时候,里面用到这个static变量时,就会发现,还是它还是上一次函数调用时的结果。
7. 在C语言中static有什么含义
最主要有两点用途。
让一个变量长期有效,而不管其是在什么地方被申明。比如:
int fun1()
{
static int s_value = 0;
....
}
那么fun1不管在什么地方被调用,当函数退出后,s_value最后的值将一直会被系统保存(相当于一个全局变量),下次s_value再被用到时,也即当fun1()再次被调用时,s_value初始值将是最近被保存过的值(请注意s_value初始化操作只会被执行一次,即上述s_value =0 这个语句)。
2.避免多个文件使用了相同的变量名而导致冲突
比如有多个文件,分别由几个人独立开发的。假定他们在各自的文件中定义相同的“全局”变量名(仅仅指在他们独自的文件中全局),当系统集成时,由于他们使用了名字一样的“全局”变量,导致有难于遇见的问题。解决这个问题方便的做法就是在各自文件中,在相同的全局变量申明前加上static修饰符。这样系统就会为他们分配不同的内存,互不影响了。
8. C语言里面静态变量static是什么作用啊
static关键字在C语言中用于声明一个静态的局部变量。
作用:
有时希望函数中的局部变量的值在函数调用结束后不消失而继续保留原值,即其占用的存储单元不释放,在下一次再调用该函数时,该变量已有值(就是上一次函数调用结束时的值)。这时就应该指定该局部变量为“静态局部变量”,用关键字static进行声明。
用静态存储要多占内存(长期占用不释放,而不能像动态存储那样一个存储单元可以先后为多个变量使用,节约内存),而且降低了程序的可读性,因此若非必要,不要多用静态局部变量。
9. Static是什么意思啊,在C程序里面
static可应用于应用于内部变量、外部变量和函数。应用于内部变量时,其作用是用来指定变量的存储类别为静态变量。应用于外部变量和函数时,其作用是限制变量或函数的作用范围仅限于外部变量或函数所在的源文件。
1、在整个程序运行的过程中,无论静态内部变量所在的函数被调用了多少次,静态内部变量只运行一次初始化,即在程序运行时完成的。
2、在函数的两次调用期间,静态内部变量所在存储单元不被释放,因而当前次函数调用执行时其值会被保存下来,下次调用时该值依然存在。即静态内部变量的值在从一次函数调用到下一次函数调用到下一次函数调用到下一次函数调用之间保持不变。
3、 默认情况下,外部变量的作用域是从定义变量的位置到所在源文件的末尾。
一、函数分为内部函数和外部函数
当一个源程序由多个源文件组成时,C语言根据函数能否被其它源文件中的函数调用,将函数分为内部函数和外部函数。
1、内部函数(又称静态函数)
如果在一个源文件中定义的函数,只能被本文件中的函数调用,而不能被同一程序其它文件中的函数调用,这种函数称为内部函数。
定义一个内部函数,只需在函数类型前再加一个“static”关键字即可,如下所示:
static 函数类型 函数名(函数参数表){……}
关键字“static”,译成中文就是“静态的”,所以内部函数又称静态函数。但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件。
使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名,因为同名也没有关系。
2、外部函数
外部函数的定义:在定义函数时,如果没有加关键字“static”,或冠以关键字“extern”,表示此函数是外部函数:
[extern] 函数类型 函数名(函数参数表){……}
调用外部函数时,需要对其进行说明:
[extern] 函数类型 函数名(参数类型表)[,函数名2(参数类型表2)……];
二、C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
(9)c语言static是什么扩展阅读:
static的作用
在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。
1、最重要的一条:隐藏。
同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。
加了static,就会对其它源文件隐藏。例如在a和msg的定义前加上static,main.c就看不到它们了。利用这一特性可以在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。Static可以用作函数和变量的前缀,对于函数来讲,static的作用仅限于隐藏,而对于变量,static还有下面两个作用。
2、static的第二个作用是保持变量内容的持久。存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和static变量,只不过和全局变量比起来,static可以控制变量的可见范围,说到底static还是用来隐藏的。
3、static的第三个作用是默认初始化为0。其实全局变量也具备这一属性,因为全局变量也存储在静态数据区。在静态数据区,内存中所有的字节默认值都是0x00,某些时候这一特点可以减少程序员的工作量。比如初始化一个稀疏矩阵,我们可以一个一个地把所有元素都置0,然后把不是0的几个元素赋值。
如果定义成静态的,就省去了一开始置0的操作。再比如要把一个字符数组当字符串来用,但又觉得每次在字符数组末尾加’ ’太麻烦。如果把字符串定义成静态的,就省去了这个麻烦,因为那里本来就是’ ’。
最后对static的三条作用做一句话总结。首先static的最主要功能是隐藏,其次因为static变量存放在静态存储区,所以它具备持久性和默认值0。
参考资料来源:
网络-static函数
网络-c语言
10. C语言中static函数的具体作用是什么
C语言中static函数的具体作用是:
让一个变量长期有效,而不管其是在什么地方被申明。
避免多个文件使用了相同的变量名而导致冲突。