c++ - t* 指向什么值

标签 c++ pointers

我正在研究指针并想出了这样的代码

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/

相关文章:

c - 简单的 c 错误使指针来自整数而不进行强制转换

c - 如果在给指针的内存位置赋值后指针递增,会发生什么情况?

c++ - 是否可以在键盘输入缓冲区中向前看并检测MFC/Win32中的条码输入?

c++ - 如何摆脱警告 C4518 : storage-class or type specifier(s) unexpected here; ignored

c++ - 在 OpenGL 中渲染 QWidget

c++ - C++ 标准库上的 sizeof()

SwiftUI 系统光标

c++ - 从live555入手,集成LIBMAD解码器

c++ - unique_ptr<T>.get() 方法在使用原始指针分配时调用析构函数?

c++ - 如何在指针中保存 vector 元素的详细信息?