我正在尝试在struct中打印一些值。 但是存在一些问题,因为该值用于结构的结构中。 如何在结构中引用结构的值? 谢谢你的帮助;)
struct a {
int a1; <=====???
int a2;
};
struct b {
int a *b1;
int b2;
};
struct b *data;
printf ("The value of a1 is %d\n", ???? );
答案 0 :(得分:2)
您忘记了;
结构中的a
。
在a
结构中声明b
类型的变量时,你做错了。它应该是:
struct b {
struct a b1;
int b2;
};
我只是将它声明为结构类型,而不是指向结构的指针,因此您不必分配内存。
如果你真的想编译这段代码,你肯定需要一个入口点:
int main(void)
{
struct b data;
printf("The value of a1 is %d\n", data.b1.a1);
return 0;
}
正如您所看到的,我在b
内声明了main
结构,名为data
。现在,您只需使用.
即可访问其成员及其成员。如果它是一个指针(并且它被正确分配),那么您可以使用->
而不是.
。
我注意到的另一件事是你在printf
电话中拼错了%d
。
您还需要包含标准I / O标头以使用printf
:
#include <stdio.h>
我真的希望这段代码只是一段编写得很快的代码,因为如果没有主要的修改,它就无法编译。