整数常量表达式

整数常量在编译时 确定的值,在运行时无法更改。 整数常量表达式 是由常量组成的表达式,并在 编译时求值为常量。

整数常量表达式是仅由以下 元素组成的表达式:
  • 字面值
  • 枚举符
  • const 使用编译时常量表达式初始化的变量C++11constexpr 表达式C++11
  • static const 使用编译时常量表达式初始化的数据成员C++11constexpr 表达式C++11
  • 强制类型转换为整数类型
  • sizeof 表达式,其中操作数不是变长数组

应用于变长数组类型的 sizeof 运算符在运行时求值,因此不是常量表达式。

在以下情况下,必须使用整数常量表达式:
  • 在下标声明符中作为数组绑定的描述。
  • switch 语句中的关键字 case 之后。
  • 在枚举符中,作为枚举常量的数字值。
  • 在位字段宽度说明符中。
  • 在预处理器 #if 语句中。 (不能在预处理器 #if 语句中指定枚举常量,地址常量和 sizeof 。)
备注C++11 C++11 标准概括了常量表达式的概念。 更多信息,请参阅通用常量表达式( C++11 )。C++11