constexpr int * vs constexpr const int * in C ++ 11

时间:2015-07-18 07:08:39

标签: c++ c++11 constexpr

我在任何函数之外有两个变量(具有固定地址):

constexpr int j = 1;
const int k = 2;

然后我在main中找到了他们的地址:

int main(){
   constexpr int *p1 = &j; // ok
   constexpr int *p2 = &k; //error: incompatible pointer types of `int*` and const int*
   return 0;
}

我知道constexpr意味着它可以在编译时确定,也意味着const

我认为如果jconst,则p1应为:

constexpr const int *p1 = &j;

constexpr const int *p2 = &k效果与预期一致。

然后,为什么 constexpr int * p2 =& k 错误,而 constexpr const int * p2 =& k 是否正常?

0 个答案:

没有答案