c++中static关键字的应用-创新互联

创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!

创新互联建站专业为企业提供石城网站建设、石城做网站、石城网站设计、石城网站制作等企业网站建设、网页设计与制作、石城企业网站模板建站服务,十多年石城做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

本篇文章给大家分享的是有关c++中static关键字的应用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

一、静态变量

与C语言一样,可以使用static说明自动变量。根据定义的位置不同,分为静态全局变量和静态局部变量。

  • 全局变量是指在所有花括号之外声明的变量,其作用域范围是全局可见的,即在整个项目文件内都有效。使用static修饰的全局变量是静态全局变量,其作用域有所限制,仅在定义该变量的源文件内有效,项目中的其他源文件中不能使用它。
  • 块内定义的变量是局部变量,从定义之处开始到本块结束处为止是局部变量的作用域。使用static修饰的局部变量是静态局部变量,即定义在块中的静态变量。静态局部变量具有局部作用域,但却具有全局生存期。
  • 静态局部变量具有局部作用域,但却具有全局生存期。也就是说,静态局部变量在程序的整个运行期间都存在,它占据的空间一直到程序结束时才释放,但仅在定义它的块中有效,在块外并不能访问它。
  • 静态变量均存储在全局数据区,静态局部变量只执行一次初始化。如果程序未显式给出初始值,则相当于初始化为0;如果显式给出初始值,则在该静态变量所在块第一次执行时完成初始化。
#include
using namespace std;

//全局静态变量
static int glos_s=10;
//全局变量
int glos_a=10;

void f(){
  int a=1; //局部变量a
  static int fs=1; //静态局部变量fs,完成初始化。
  a+=2;
  fs+=2;
  glos_s+=10;
  glos_a+=10;
  cout<<"在f中:局部变量a="<http://myzitong.com/article/deodhh.html