int main() {const auto staff_size = 27;constexpr auto* p1 = &staff_size;return 0;}运行结果错误如下?原因?error: ‘& staff_size’ is not a constant expression constexpr auto* p1 = &staff_size;
2 回答
沧海一幻觉
TA贡献1824条经验 获得超5个赞
因为staff_size是个局部栈变量,它的地址要在运行时才能得到,而constexpr auto* p1要求对p1赋值的地址是个能在编译期就能确定的常量,所以出错。可以把staff_size定义为静态变量或者全局变量,这样编译期就可确定其地址了:
int main() {
static const auto staff_size = 27; //static静态的
constexpr auto* p1 = &staff_size;
return 0;
}
- 2 回答
- 0 关注
- 217 浏览
添加回答
举报
0/150
提交
取消