全局静态变量
定义:在全局变量前加上关键字static,全局变量就定义成一个全局静态变量,存放在静态存储区,在整个程序运行期间一直存在。
初始化:未经初始化的全局静态变量会被自动初始化为0(自动对象的值是任意的,除非他被显式初始化);
作用域:全局静态变量在声明他的文件之外是不可见的,准确地说是从定义之处开始,一直到文件结尾。
static int A = 10; // 全局静态变量
局部静态变量
定义:在局部变量之前加上关键字static,局部变量就成为一个局部静态变量(内存中的位置:静态存储区)
初始化:未经初始化的全局静态变量会被自动初始化为0(自动对象的值是任意的,除非他 被显式初始化);
作用域:作用域仍为局部作用域,当定义它的函数或者语句块结束的时候,作用域结束,但是当局部静态变量离开作用域后,并没有被编译器销毁,而是仍然驻留在内存当中,只不过我们不能再对 它进行访问,直到该函数再次被调用,并且它的值不变;
void print_static(){
static int b = 2;
std::cout<<b<<std::endl;
b++;
}
int main(int argc ,