c++面试之static与const的作用

一、static的作用

(1)在函数体内,静态变量具有“记忆”功能,一个被声明为静态的变量在这一函数被调用的过程中,其值维持不变;

(2)函数体外,模块内,它的作用范围是有限制的:

  • 静态变量:该变量可以被模块内所有函数访问,但不能被模块外其他函数访问,是一个本地的全局变量;
  • 静态函数:作用域与普通函数不同,它的作用域仅限于本文件中,只能被这一模块的其他函数调用,不能被模块外的其他函数调用。

static全局变量与普通的全局变量的区别:static全局变量只初始化一次,目的是防止在其他文件中被引用。

static局部变量与普通的局部变量的区别:static只被初始化一次,下一次运算是上一次的结果。

static()函数与普通函数的区别:作用域不同,static()函数只在一个源文件重要有效,不能被其他源文件使用

类中的静态数据成员的特点:

(1)无论类的对象定义多少个,静态数据成员在类中只有一份复制品;

(2)静态数据成员存储在全局数据区,定义时,需分配空间;

(3)静态成员变量初始化是在类外;

静态成员函数不具有this指针,无法访问属于类对象的非静态数据成员,也无法访问非静态成员函数,只能调用其余的静态数据成员函数。

二、const的作用

  • 定义const常量,具有不可变性;
  • 进行类型检查
  • 方便进行参数调整和修改
  • 保护被修饰的东西,防止被意外更改
  • 为函数重载提供参考
  • 节省空间,避免不必要的内存分配


猜你喜欢

转载自blog.csdn.net/qq_32164245/article/details/80583724