-3

我正在尝试在结构中打印一些值。但是存在一些问题,因为该值用于结构的结构中。如何引用结构中结构的值?谢谢您的帮助 ;)

struct a {
  int a1;   <=====???
  int a2;
};
struct b {
  int a *b1;
  int b2;
};

struct b *data;
printf ("The value of a1 is %d\n", ???? );
4

1 回答 1

2

;您在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. 现在,您只需使用 . 即可访问其成员及其成员的成员.。如果它是一个指针(并且它被正确分配),那么你可以使用->而不是..

我注意到的另一件事是您%dprintf通话中拼写错误。

您还需要包含标准 I/O 标头才能使用printf

#include <stdio.h>

我真的希望这段代码只是一段糟糕而快速的代码,因为如果不进行重大修改,它就无法编译。

于 2012-11-19T02:27:51.843 回答