整数常量表达式
整数常量 是 在编译时 确定的值,在运行时无法更改。 整数常量表达式 是由常量组成的表达式,并在 编译时求值为常量。
整数常量表达式是仅由以下 元素组成的表达式:
- 字面值
- 枚举符
const使用编译时常量表达式初始化的变量或
constexpr表达式
static const使用编译时常量表达式初始化的数据成员或
constexpr表达式
- 强制类型转换为整数类型
sizeof表达式,其中操作数不是变长数组
应用于变长数组类型的 sizeof 运算符在运行时求值,因此不是常量表达式。
在以下情况下,必须使用整数常量表达式:
- 在下标声明符中作为数组绑定的描述。
- 在
switch语句中的关键字case之后。 - 在枚举符中,作为枚举常量的数字值。
- 在位字段宽度说明符中。
- 在预处理器
#if语句中。 (不能在预处理器#if语句中指定枚举常量,地址常量和sizeof。)