static关键字的作用
//C/C++程序员面试指南 杨国祥等编著
- 定义全局静态变量。全局静态变量有以下特点:
- 在全局数据区分配内存;
- 如果没有初始化,其默认值为0;
- 该变量在本文件内从定义开始到文件结束可见。
- 定义局部静态变量。局部静态变量有以下特点:
- 在全局数据区分配内存;
- 如果没有初始化,其默认值为0;
- 它始终驻留在全局数据区,直到程序运行结束;
- 其作用域为局部作用域,当定义它的函数或语句块结束时其作用域随之结束。
- 定义静态函数。静态函数有以下特点:
- 静态函数只能在本文件中使用;
- 定义静态数据成员。静态数据成员有以下特点:
- 在全局数据区分配内存;
- 静态数据成员定义时要分配空间,所以不能在类声明中定义。
- 定义静态成员函数。 特点:
- 静态成员函数与类相联系,不与类的对象相联系。静态成员函数不能访问非静态数据成员。因为非静态数据成员属于特定的类实例。