c ++嵌套结构初始化和访问成员

莫纳什·切特里
struct Point
{
    double x,y;
};
Point p;
struct Disk
{
    Point center;
    int radius;
};
Disk d;
int main()
{  
   d.center.x=1.2;
   cout<<p.x;
}

有人可以解释一下这段代码的输出吗?为什么我没有将 x 的值改为 1.2 和 0?

小甜饼贝西

让我们逐行浏览您的代码。

首先,您创建了一个Point名为p. 所以,p坐在内存的某个地方:

Memory:  p:[x, y]

然后,您创建了一个Disk被调用的d,它将自己的Point对象存储在其中。

Memory:  p:[x, y]                     d:[center:[x, y], radius]

这些是完全独立的对象。当你用 修改Point存储在dd.center.x=1.2,它根本不影响p

因此,p未初始化,读取未初始化变量的值会导致未定义行为,这意味着任何事情都可能发生,在这种情况下通常会获得一个随机值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章