C++学习笔记系列2-14

C++学习笔记系列2-14 static变量static变量又称为“静态变量”它和auto变量一样也是写在变量声明的最前面。如static int i 10静态变量可以分为静态全局变量、静态局部变量2种类型静态全局变量声明在函数外部静态局部变量则在函数内部。他们有一个明显的特点即声明一次永久使用。静态变量的优缺点优点静态变量只初始化一次数据一直保留默认值为0或空值缺点静态变量会一直占用内存空间直到程序运行结束。#include iostreamusing namespace std;static int b; // 此处未赋值编译器默认赋值为0void PuTong(){int a 0;cout普通变量 a endl;a;} //普通函数内部的变量在每次调用时都会被从新创建并赋值void JingTaiQuanJu(){cout静态全局变量 b endl;b;} //使用了静态全局变量 b ,只初始化一次之后再调用这个函数则在原基础上递增void JingTaiJuBu(){static int c 1;cout静态局部变量 c endl;c;} //使用了静态局部变量和静态全局变量一样。int main(){PuTong();PuTong();JingTaiQuanJu();JingTaiQuanJu();JingTaiJuBu();JingTaiJuBu();}输出普通变量0普通变量0静态全局变量0静态全局变量1静态局部变量1静态局部变量2通过以上代码我们看到静态变量和普通变量的区别静态变量无论全局还是局部都只要一次初始化之后便在原有基础上进行改变而普通变量是不具备这个能力的。正因如此静态变量更适合做一些统计数据的函数因子。静态全局变量和全局变量的区别全局变量可以在多个文件中访问适合需要共享数据的场景静态全局变量只能在定义它的源文件中访问具备封装的特性。