C中和C++中static的作用?

来源:互联网 发布:詹姆斯2016季后赛数据 编辑:程序博客网 时间:2024/05/16 04:17

一在C语言中,主要有三个作用:

1,在函数体内,具有记忆功能,在函数调用过程中维持值不变。

2,在模块内(但在函数体外),该变量只能被模块内的函数访问,不能被模块外的函数访问。如果一个函数被声明为静态的,则该函数只能在改模块内被其他函数调用,不能被块外的函数调用。

3,static全局变量和普通的全局变量区别在于static全局变量只初始化一次,目的是为了防止在其他文件中被引用。static局部变量和普通局部变量的区别在于static局部变量只被初始化一次,下一次的运算依据是上一次的结果值。

二 在C++中,类内数据成员的声明前加上static,该成员就为类内的静态数据成员,主要有以下特点:

a,对于非静态数据成员,每个类对象都有自己的复制品,而静态数据成员被当做是类的成员,无论这个类的对象被定义了多少,静态数据成员在程序中只有一份复制品,由该类型的所有对象共享。

b,静态数据成员存储在全局数据区,定义时要分配空间,在没有产生类的实例时,也可以使用它。

c,和普通数据成员一样遵从public,protected,private的访问限制。

d,使用静态数据成员的两个优势:1,没有进入程序的全局名字空间,不存在与其他全局名字冲突,2,可以实现信息隐藏,可以使private成员,而全局变量不能。

0 0
原创粉丝点击