在 C 语言中,static 关键字用于修饰变量、函数或类成员,使其具有静态作用域,具有以下特性:内部链接:只能在声明它的文件中访问或调用。保留值:变量和局部函数变量在程序结束之前保留其值。类作用域:类成员属于整个类,所有实例共享同一份数据。常量:static const 类成员可以声明为编译时常量。

C语言中的static用法
什么是static?
static是一个关键字,用于修饰变量、函数或类成员,表示其具有静态作用域。
变量的static作用域
立即学习“C语言免费学习笔记(深入)”;
对于变量,static表示:
-
内部链接:
static变量只能在声明它的文件内访问。 -
保留值:
static变量在程序结束之前一直保留其值,即使它所在的函数已经退出。 -
默认初始化:全局
static变量被初始化为0,局部static变量被初始化为垃圾值。
函数的static作用域
对于函数,static表示:
-
内部链接:
static函数只能在声明它的文件内调用。 -
局部作用域:
static函数的局部变量具有与static变量相同的内部作用域和值保留特性。
类成员的static作用域
对于类成员,static表示:
-
类作用域:
static类成员属于整个类,而不是任何特定对象。 -
共享数据:所有类实例共享同一份
static类成员。 -
常量:
static const类成员可以声明为编译时常量。
何时使用static?
使用static的常见场景包括:
- 限制变量或函数的可见性
- 保留函数局部变量的状态
- 在类中使用共享数据
- 声明编译时常量
示例
// 外部变量,全局可见
int external_var = 10;
// 静态变量,仅在本文件中可见且保留其值
static int static_var = 20;
// 静态函数,仅在本文件中可见且局部变量保留其值
static void static_func() {
static int local_var = 30;
local_var++;
}
// 静态类成员,所有对象共享
class MyClass {
public:
static int shared_var = 40;
};











