c++ - 指向结构类型的指针如何表现?

标签 c++ pointers struct

我有一个问题。假设我有一个结构,可以这样说:

struct myData
{
    int a;
    int b
} x, y ;

然后,我创建一个指向 x 的指针,例如:

myData * x_ptr = &x;

所以我知道 x_ptr 指向存储 x 的内存位置。所以我可以找到整个结构的内存位置。但是,假设我想找到结构变量 x 的成员 a 的内存位置。我该怎么做?

对我来说,做这样的事情似乎很自然:

x_ptr.a

现在,我知道这是行不通的。当我想象变量是如何存储在计算机内存中时,我想到的是一个盒子,里面装着一些东西。所以对于一个结构,它将是一个更大的盒子,其中包含两个成员,在我的例子中是 ab。那么,ab 的内存位置是否与整个“盒子”的内存位置相同? 这就是为什么我无法访问 x.a 的内存位置?

我正在尝试理解指针,我很快就了解了它是如何工作的,但这让我很困扰。有人可以回答我吗?谢谢你! :)

最佳答案

很简单

a的内存位置是&x_ptr->a;

关于c++ - 指向结构类型的指针如何表现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20599112/

相关文章:

c++ - 使用arm-linux-gnueabi-g++ -o时出现段错误,没有-o则没有问题

c++ - std::chrono 计算不同比率的差异

pointers - 如何在 Go 中将动态创建的结构作为非指针对象传递

c++ - 指针 : p++ & p+1

c++ - C 结构定义标准

c - 为什么在尝试使用 .c 文件中 header 中的结构时出现类型错误?

c++ - 如何修复类中的类型限定符错误?

c++ - 我如何使用 gsl::span 并指示所有权?

c - 为什么 `int *p = (char *) &num' 会导致警告?

c# - 为什么具有可为空值的结构的 HashSet 非常慢?