常量表达式和非常量表达式的计算时机不同,非常量表达式只能在程序运行阶段算出结果,但是常量表达式的计算往往发生在程序的编译阶段,这可以极大提高程序的执行效率。
constexpr定义一个常量。
代码如下:
#include <iostream>
using namespace std;int main()
{constexpr int a = 10;//a的值不可以修改!return 0;
}
constexpr修饰class或struct。
代码如下:
#include <iostream>
using namespace std;//不能这样写!!!
/*constexpr struct T
{int a;
};*/struct T
{int a ;
};int main()
{constexpr T t{ 100 };//t.a = 28; a为常量,不可被修改return 0;
}