我正在研究指针并想出了这样的代码
class b
{
}
class d
{
}
d* a = 0;
b *t = new b();
*t = * ( b* )a;
这个声明是什么意思?
t有什么值(value)?
最佳答案
t
仍将指向用 new b();
创建的对象。 *t =
改变了 t
指向的值,而不是 t
本身。
你的最后一行包含未定义的行为,因为你取消了对空指针的引用。此外,您的类型转换实际上是伪装的 reinterpret_cast
,这是您不应该做的事情。
关于c++ - t* 指向什么值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9211663/