根据 C++ Primer 一书,我们可以将限定为 const 且值为 0 的变量分配给指针。这是书中的相关内容。
可以分配文字 0 或在编译时已知其值为 0 的常量:
然后提供以下代码片段。
int ival;
int zero = 0;
const int c_ival = 0;
int *pi = ival; // error
pi = zero; // error
pi = c_ival // ok: c_ival is a const with compile-time value of 0
Run Code Online (Sandbox Code Playgroud)
但是,当我运行类似的代码时,会引发错误。
int main()
{
const int c_ival = 0;
int *pi = c_ival;
}
Run Code Online (Sandbox Code Playgroud)
错误:从“int”到“int*”的无效转换 [-fpermissive]
我究竟做错了什么?