由于c语言基础不够扎实,就开始使用c++,所以一直对静态变量这个概念模棱两可,现在总结如下:
本文只针对c++类外定义的静态变量,因为只有这个场景下的静态变量才和c语言的静态变量是同一个概念。
1,全局静态变量
全局变量,即在类/函数定义之外的变量,其是可以被多个文件访问到的。当加上static声明后,就只能在定义的文件内访问。由此体现出了静态的作用之一:隐藏与隔离作用域。
2,局部静态变量
在函数内部的临时变量前面加上static声明。当不加static声明时,每次进入函数,此临时变量都会被重新赋初值,当加上static声明后,每次进入函数,都会保留上次的值。由此体现了静态的作用之二:保持变量内容的持久性。
上面的总结可以说是很到位了。