21xrx.com
2024-11-22 10:09:28 Friday
登录
文章检索 我的文章 写文章
C++静态变量:定义、声明及用法介绍
2023-07-13 12:53:13 深夜i     --     --
静态变量 C++中的定义和声明 静态变量的用法 作用域问题 静态变量和全局变

C++语言中,静态变量是一种特殊类型的变量。它在程序运行期间只有一份存储空间,可以在不同的函数调用之间保持值不变。本文将介绍C++中静态变量的定义、声明及用法。

1. 静态变量的定义

静态变量的定义需要在变量名前加上关键字“static”。定义方式如下:

static int num;

这样就定义了一个静态变量num,它的作用域是在整个文件中都有效。

2. 静态变量的声明

当静态变量在一个函数里定义时,同样需要在变量名前加上关键字“static”。但这样不能实现静态变量的共享。如果想实现静态变量在不同函数中的共享,需要在其他函数中使用关键字“extern”进行声明。假设num在func1函数中定义,在func2和func3函数中需要使用num,则需要这样声明:

extern int num;

这样在func2和func3函数中就可以使用num而不用重新定义。

3. 静态变量的用法

静态变量一般用于需要记录某个值并在函数调用间保持一致的情况。比如:

- 记录函数调用的次数

- 记录某个变量的状态

- 记录程序中某个共享资源的数量等

下面是一个例子,展示了如何使用静态变量:

#include

using namespace std;

void func1() {

  static int count = 0;

  cout << "func1 is called " << ++count << " times" << endl;

}

void func2()

  static int num = 10;

  cout << "num is " << num-- << " in func2" << endl;

int main() {

  func1();

  func1();

  func2();

  func2();

  return 0;

}

输出结果为:

func1 is called 1 times

func1 is called 2 times

num is 10 in func2

num is 9 in func2

在这个例子中,我们定义了两个函数func1和func2,它们都有一个静态变量。函数func1的静态变量count用于记录函数被调用的次数;函数func2的静态变量num用于记录变量状态。每次调用这两个函数,静态变量的值都会被保留。这就是静态变量的用法。

总结

C++中的静态变量是一种很有用的变量类型,它可以在不同函数调用之间保持值不变,可以记录某个值并在程序中共享。使用静态变量可以提高程序的效率和可读性。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复