文字:数字、字符、字符串等不能更改的值。 单引号中的是文字字符,双引号中的是文字字符。
文字值类型(literal type )算术类型、引用、指针等。
常数表达式(const experssion ):)1)值不变,)2)编译时生成计算结果的表达式。 文字是常量表达式,用常量表达式初始化的const对象也是常量表达式。
对象(或表达式)是否为常量表达式取决于其数据类型和初始值。
C 11新标准将变量声明为constexpr类型,以便编译器可以验证变量是否为常量表达式。
声明为constexpr的变量必须是常量,必须用常量表达式初始化。
应遵循的规则:函数的返回类型和所有参数的类型都是文字值类型,必须存在于函数主体中,只有一个return语句。
constexpr函数可以包含其他语句,除非在运行时执行任何操作。 例如,空语句、类型别名、using声明等)
constexpr函数隐式指定为内联函数。
a为常数式时,fun(a )为常数式。 如果a不是常数表达式,则fun(a )是常规函数。
如果constexpr函数是常量表达式,则可用于初始化constexpr变量。
),但只有0、nullptr和固定地址中的对象是用constexpr声明的指针的初始值。 因为是常数表达式。 (常数表达式定义)2)。