如何在结构中引用结构的值?

时间:2012-11-19 02:13:52

标签: c

我正在尝试在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", ???? );

1 个答案:

答案 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>

我真的希望这段代码只是一段编写得很快的代码,因为如果没有主要的修改,它就无法编译。