字面值类型
在前面已经提到了常量表达式的概念。
常量表达式是指值不会改变,并且在编译过程中就能得到计算结果的得表达式。
常量表达式的值需要在编译时就得到计算,算术类型、引用和指针都属于字面值类型。
指针和constexpr
必须明确一点,在cosntexpr声明中如果定义了一个指针,限定符constexpr仅对指针有效,与指针所指的对象无关。
const int *p = nullptr; //指针p不是常量,但是指针p指向常量
cosntexpr int *q = nullptr; //指针q是常量
constexpr int a = 10;
cosntexpr const int *b = &a;//constexpr自动将指针置为一个顶层const
在前面已经提到了常量表达式的概念。
常量表达式是指值不会改变,并且在编译过程中就能得到计算结果的得表达式。
常量表达式的值需要在编译时就得到计算,算术类型、引用和指针都属于字面值类型。
指针和constexpr
必须明确一点,在cosntexpr声明中如果定义了一个指针,限定符constexpr仅对指针有效,与指针所指的对象无关。
const int *p = nullptr; //指针p不是常量,但是指针p指向常量
cosntexpr int *q = nullptr; //指针q是常量
constexpr int a = 10;
cosntexpr const int *b = &a;//constexpr自动将指针置为一个顶层const
这两天有点忙,所以看书的时间少了点QAQ。以后补上。