我有一个问题。假设我有一个结构,可以这样说:
struct myData
{
int a;
int b
} x, y ;
然后,我创建一个指向 x 的指针,例如:
myData * x_ptr = &x;
所以我知道 x_ptr 指向存储 x 的内存位置。所以我可以找到整个结构的内存位置。但是,假设我想找到结构变量 x 的成员 a 的内存位置。我该怎么做?
对我来说,做这样的事情似乎很自然:
x_ptr.a
现在,我知道这是行不通的。当我想象变量是如何存储在计算机内存中时,我想到的是一个盒子,里面装着一些东西。所以对于一个结构,它将是一个更大的盒子,其中包含两个成员,在我的例子中是 a 和 b。那么,a 和b 的内存位置是否与整个“盒子”的内存位置相同? 这就是为什么我无法访问 x.a 的内存位置?
我正在尝试理解指针,我很快就了解了它是如何工作的,但这让我很困扰。有人可以回答我吗?谢谢你! :)
最佳答案
很简单
a的内存位置是&x_ptr->a;
关于c++ - 指向结构类型的指针如何表现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20599112/