我想使用嵌套结构,但我不知道如何在其中输入数据,例如:
struct A {
int data;
struct B;
};
struct B {
int number;
};
Run Code Online (Sandbox Code Playgroud)
所以当我来使用时主要是:
int main() {
A stage;
stage.B.number;
}
Run Code Online (Sandbox Code Playgroud)
是不是如果不是我如何使用它?
Rob*_*edy 14
结构的每个成员变量通常具有名称和类型.在您的代码中,第一个成员A有类型int和名称data.第二个成员只有一个类型.你需要给它一个名字.让我们说b:
struct A {
int data;
B b;
};
Run Code Online (Sandbox Code Playgroud)
要做到这一点,编译器需要已经知道什么B是,这样声明结构之前声明A.
要访问嵌套成员,请按名称引用路径中的每个成员,以下分隔.:
A stage;
stage.b.number = 5;
Run Code Online (Sandbox Code Playgroud)
内部必须有某种名称,以便您可以引用它struct B:A
struct B {
int number;
};
struct A {
int data;
struct B myB;
};
:
struct A myA;
myA.myB.number = 42;
Run Code Online (Sandbox Code Playgroud)
struct A {
struct B {
int number;
};
B b;
int data;
};
int main() {
A a;
a.b.number;
a.data;
}
Run Code Online (Sandbox Code Playgroud)
struct B { // <-- declare before
int number;
};
struct A {
int data;
B b; // <--- declare data member of `B`
};
Run Code Online (Sandbox Code Playgroud)
现在您可以将其用作
stage.b.number;
Run Code Online (Sandbox Code Playgroud)