仅仅在C语言中。不谈C++,因为C++中类里面的static,又有很多东西,就不说了。
1,用static声明的变量存放在静态存储区,这个东西只有程序结束时才没了。要不然一直存在,你可以随时改变它的值。
2,用static修饰的变量或函数只在本文件起作用,在函数内部,作用域就在函数内部,依次类推。
3,最想说的是,如果一个static变量放在头文件中,static int a = 2;在a.h
那么a.c与b.c都包含这个头文件,你说这个a的值会永远一样吗?
我告诉你吧,不一样,这个a在不同的文件中的地址不一样,说明在不同的文件有不同的值。
同时也告诉你,变量在存储区是按地址存的,不是按名字,一定要知道这点。名字只是个标签而已,世界上那么多同名的,但你可以根据地址找到你想要的人。
4,用static声明的函数,一定要和定义在一起啦。