Static:
存储方式:
定义一个static变量时,编译器会在静态存储区为它分配空间,而不是在栈上。
1. static变量如果声明在函数体中,它的作用范围是整个函数体。 需要注意它只会分配一次内存。所以多次调用这个函数不会多次给static变量重新赋值。因此它的值会保持上次调用时的值。
2. static变量如果声明在模块中,它的作用范围是这个模块中的所有函数。它可以被这个模块中所有函数访问,但是不能被模块外的函数访问。
3. static函数如果声明在模块中,那么它只能被这个模块中的所有函数调用,不能被模块外的函数调用。
4. 类中的static变量属于整个类,所以对于这个类的所有对象来说,它只有一份。也即所有对象共用这个变量。