C++嵌套结构初始化和访问成员
c++ nested structure initialization and accessing the members
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?
让我们逐行浏览您的代码。
首先,您创建了一个名为 p
的Point
。所以p
坐在记忆中的某个地方:
Memory: p:[x, y]
然后,您创建了一个名为 d
的Disk
,它将自己的Point
对象存储在其中。
Memory: p:[x, y] d:[center:[x, y], radius]
这些是完全独立的对象。当您使用 d.center.x=1.2
修改存储在 d
中的Point
时,它根本不影响p
。
因此,p
是未初始化的,读取未初始化变量的值会导致未定义的行为,这意味着任何事情都可能发生,在这种情况下通常会获得一个随机值。
相关文章:
- C++ 传递指向对象的指针的指针,无法访问成员
- 从不同C++类的成员变量访问成员函数
- 使用 getter 访问成员变量C++
- 如何使用包含内部类的类实例有效地从内部类访问成员?
- 通过多个类访问成员时出错
- 如何在使用对象指针时访问成员函数
- 为什么相应成员不能正确访问成员函数指针
- 从两个不同类继承的非虚拟基类的访问成员
- 如何使用 gcc 内联汇编器代码访问成员变量
- 如何使用常数向量访问成员函数
- 访问成员函数中参数的类成员
- C++嵌套结构初始化和访问成员
- 通过指向班级第一个成员的指针访问成员是不确定的行为吗?
- 如何使用C STD :: SET中的迭代器访问成员功能
- 访问成员C 时,结构的向量生成了范围的错误
- 带指针的班级访问成员
- 从聚合类访问成员变量
- 如何访问成员变量 sqlite 回调
- ctypes/C++segfault访问成员变量
- 通过父类型的指针或直接从派生类访问成员函数的差异