一、static的作用
(1)在函数体内,静态变量具有“记忆”功能,一个被声明为静态的变量在这一函数被调用的过程中,其值维持不变;
(2)函数体外,模块内,它的作用范围是有限制的:
- 静态变量:该变量可以被模块内所有函数访问,但不能被模块外其他函数访问,是一个本地的全局变量;
- 静态函数:作用域与普通函数不同,它的作用域仅限于本文件中,只能被这一模块的其他函数调用,不能被模块外的其他函数调用。
static全局变量与普通的全局变量的区别:static全局变量只初始化一次,目的是防止在其他文件中被引用。
static局部变量与普通的局部变量的区别:static只被初始化一次,下一次运算是上一次的结果。
static()函数与普通函数的区别:作用域不同,static()函数只在一个源文件重要有效,不能被其他源文件使用
类中的静态数据成员的特点:
(1)无论类的对象定义多少个,静态数据成员在类中只有一份复制品;
(2)静态数据成员存储在全局数据区,定义时,需分配空间;
(3)静态成员变量初始化是在类外;
静态成员函数不具有this指针,无法访问属于类对象的非静态数据成员,也无法访问非静态成员函数,只能调用其余的静态数据成员函数。
二、const的作用
- 定义const常量,具有不可变性;
- 进行类型检查
- 方便进行参数调整和修改
- 保护被修饰的东西,防止被意外更改
- 为函数重载提供参考
- 节省空间,避免不必要的内存分配