参考自C++ Primer
引自C++ Primer中的一句话:
C++11新标准规定,允许将变量声明为constexpr类型以便由编译器来验证变量的值是否是一个常量表达式。声明为constexpr的变量一定是一个常量,而且必须用常量表达式初始化。
常量表达式:指值不会改变并且在编译过程就能得到计算结果的表达式
const int max_files = 20; //max_files是一个常量表达式
const int limit = max_files + 1; //limit是一个常量表达式
int staff_size = 27; //staff_size不是一个常量表达式
const int sz = get_size(); //sz不是一个常量表达式
更详细的内容请参考C++ Primer 5
int i = 10;
const int k = 12;
const int *p1 = &k;//p1表示指向整形常量的指针
int *const p2 = &i;//p2是一个常量指针
constexpr int *p3 = &i;//与p2一样,p3表示一个常量指针
constexpr cosnt int p4 = &k;//p4是常量指针,指向整形常量