以下代码(取 from here ):
int* ptr = int();
在 Visual C++ 中编译并对指针进行值初始化。
这怎么可能?我的意思是 int()
产生一个 int
类型的对象,我不能将 int
分配给指针。
上面的代码怎么不违法?
最佳答案
int()
是一个值为 0 的常量表达式,因此它是生成空指针常量的有效方法。归根结底,这只是 int *ptr = NULL;
关于c++ - "int* ptr = int()"值初始化如何不非法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8067897/