关于static用途说法正确的是( BCD )?
A. 声明静态外部类
B. 声明静态全局变量
C. 声明静态函数
D. 声明静态局部变量


静态全局变量:

static 修饰全局变量,使变量不能被外部文件使用;同时会在 main() 函数执行前被初始化,生命周期和程序一样长。

静态局部变量:

static 修饰局部变量,通常是某个函数中定义的变量,使该变量只(在函数第一次执行时)被定义一次,函数执行结束后不会消失,而是保存在内存中,下次调用时继续使用上次的值;同时不能被函数外部使用。

静态全局函数:

static 修饰全局函数,使该函数不能被外部文件所使用,通常用于限制函数的作用域,避免与其他文件中的同名函数冲突。

静态成员变量或静态成员函数:

static 修饰类内成员变量或成员函数,使被修饰的变量或函数在类的所有对象实例之间共享,它们不依赖于特定对象的状态,而是与整个类相关联;可以通过类名调用,而不需要通过对象实例。

静态成员函数只能访问静态成员变量和函数,非静态成员函数可以访问静态或非静态的成员变量和函数。但是,虽然静态成员函数不能直接访问非静态成员变量和函数,但它们可以通过对象实例来访问非静态成员。

C++中的static