【发布时间】:2015-11-14 19:39:59
【问题描述】:
我无法真正理解 C++ 中的指针指针是什么。假设我有一个定义如下的类:
class Vector3
{
public:
float x,y,z;
//some constructors and methods
}
如果我有类似的东西怎么办
Vector3 **myVector3;
这在某种程度上是否相当于 C# 中的 List<List<Vector3> myVector3?
无论如何,我怎样才能动态分配这个 myVector3 对象?
谢谢。
【问题讨论】:
-
首先,找出指针是什么(我会等)。好的,第二步:想想指针的地址有什么用处。
-
@EdPlunkett:我们不要进一步混淆 OP;不需要有指针的地址。
null是一个指针,但它没有地址;这是一个价值。 变量有一个地址。一个变量可能包含一个指针。 -
@EricLippert 现在你让我很困惑!我的意思是拥有指向指针的指针的唯一原因是使用指针的地址来做某事。
-
@EdPlunkett:你不会问123的地址是什么;数字是价值。指针引用变量;一个变量可能包含值 123,但指针不是指向值 123,而是指向包含它的变量。指针就像数字。他们是价值观。他们没有地址。包含该值的存储位置有一个地址。
-
@EdPlunkett:没有人说你是个白痴。我的观点是:一个指针是一个地址,一个变量包含一个指针有一个地址。 OP 可能对指针和地址之间的关系感到困惑,指针类型的变量与地址有两种关系:它们都有地址和包含地址。因此,我提倡不采用专家采用的常见但令人困惑的快捷方式,例如当他们的意思是“指向包含指针的变量的指针”时说“指向指针的指针”。跨度>