【发布时间】:2025-12-11 22:25:01
【问题描述】:
根据 C++ Primer 一书,我们可以将一个限定为 const 且值为 0 的变量分配给一个指针。这是书中的相关内容。
可以在编译时分配文字 0 或已知值为 0 的 const:
然后提供如下代码sn-p。
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
但是,当我运行类似的代码时,会引发错误。
int main()
{
const int c_ival = 0;
int *pi = c_ival;
}
错误:从 'int' 到 'int*' 的无效转换 [-fpermissive]
我做错了什么?
【问题讨论】:
-
您使用的是什么编译器和编译器标志?
-
这将在 C++98 中编译,但不能在 C++11+ 中编译。在现代 C++ 中,更喜欢使用 nullptr。
标签: c++ pointers nullptr null-pointer