2016-12-27 8 views
-2

http://i64.tinypic.com/34ffxx2.jpg構造体上のポインター

この画像をご覧ください。 (上のリンク)

本書では、構造変数 'n1'の '次の'メンバーが構造変数 'n2'の '値'メンバーを指すことが記載されています。

1 :) 'n2'は構造変数で、 'next'ポインタは 'n2'を指し、特にその 'value'メンバーには向いていないため、完全な 'n2'構造体を指しません。

2 :)また、構造が同じ名前とデータ型を持つ別の構造体を含むことは完全に妥当であると述べられています。それはどのように可能ですか?私は親構造体に多くの構造体を持たせることができますが、メンバーはどのように親構造体のデータ型を持っていますか?

+0

1. N1の次のメンバーがn2にポイントします:これは、コンパイル・エラーです。それはn2の値のメンバーを決して言うことはありません。 2.それは 'エントリ'構造体のポインタを含むということです。 – surender8388

+0

'next'がいくつかの' value'メンバーを指しているという文を読むことはできません。エントリ構造を指していることを示します。これはまさにあなたが1)で期待していることです。また、同じタイプの別のメンバーを含むことについては何も教えていません。構造体と同じ型の_pointer_で、何か違うものです。 – Gerhardh

答えて

1

Oups。

  1. n1.next

    が実際にn2を指す... ブックは正しいですが、ご理解が間違っています。 valueが構造体の最初のメンバーなので、構造体全体と同じアドレスにあります。
  2. 構造体がその要素の1つであるということは問題ありません。同じタイプ。しかし、にはが含まれていません。それは言う

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