【问题标题】:Pointers on member of the structure结构成员的指针
【发布时间】:2016-12-27 09:18:36
【问题描述】:

http://i64.tinypic.com/34ffxx2.jpg

请看那张图片。 (上面给出的链接)

书上说结构变量'n1'的'next'成员将指向结构变量'n2'的'value'成员。

1:) 它会不会指向完整的 'n2' 结构,因为 'n2' 是一个结构变量,而 'next' 指针指向的是 'n2' 而不是特别指向它的 'value' 成员。

2:) 另外,据说一个结构可以包含另一个具有相同名称和数据类型的结构。这怎么可能?我明白了,我们可以在一个父结构中拥有尽可能多的结构,但是一个成员怎么会有一个父结构的数据类型呢?

【问题讨论】:

  • 1.它说n1的下一个成员将指向n2。它从不说 n2 的值成员。 2. 它说,可以包含“入口”结构的指针。
  • 我无法阅读任何说明next 指向某个value 成员的句子。它声明它指向一个入口结构。这正是您在 1) 中所期望的。它也没有说明包含具有相同类型的另一个成员的任何信息。它是一个 pointer,指向与结构相同的类型,但有所不同。

标签: c pointers data-structures


【解决方案1】:

麻烦。 是对的,但你的理解是错误的……

  1. n1.next 实际上指向 n2。碰巧value 是结构的第一个成员,因此它与整个结构位于同一地址
  2. 声明的是,结构体中的一个元素指向 指向另一个相同类型的结构体是可以的。但它不能包含它。这是一个编译错误:

    struct entry {
        int value;
        struct entry next;  // Ouch, tries to contain self: ERROR!
    };
    

【讨论】:

    猜你喜欢
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-27
    • 2017-02-27
    相关资源
    最近更新 更多