我正在尝试在结构中打印一些值。但是存在一些问题,因为该值用于结构的结构中。如何引用结构中结构的值?谢谢您的帮助 ;)
struct a {
int a1; <=====???
int a2;
};
struct b {
int a *b1;
int b2;
};
struct b *data;
printf ("The value of a1 is %d\n", ???? );
我正在尝试在结构中打印一些值。但是存在一些问题,因为该值用于结构的结构中。如何引用结构中结构的值?谢谢您的帮助 ;)
struct a {
int a1; <=====???
int a2;
};
struct b {
int a *b1;
int b2;
};
struct b *data;
printf ("The value of a1 is %d\n", ???? );
;
您在a
结构中忘记了 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
. 现在,您只需使用 . 即可访问其成员及其成员的成员.
。如果它是一个指针(并且它被正确分配),那么你可以使用->
而不是.
.
我注意到的另一件事是您%d
在printf
通话中拼写错误。
您还需要包含标准 I/O 标头才能使用printf
:
#include <stdio.h>
我真的希望这段代码只是一段糟糕而快速的代码,因为如果不进行重大修改,它就无法编译。