Zagnieżdżanie struktur.

0

Jednej rzeczy nie rozumiem, bo o ile pojedyncze struktury są jasne i klarowne, to jak rozumieć coś takiego:


struct jedynka{struct dwojka{int a; int b;}c;}d;

Czy wtedy zmienna d struktury jedynka rezerwuje 2 miejsca pamięci na te dwie zmienne czy jest inaczej?

I jak się do tego dostać?

I czy zrobiłoby jakąś różnicę gdybyśmy dwojki nie zdeklarowali jako zmiennej c?

1

Jakby to inaczej zapisać:

struct jedynka {
  struct dwojka {
    int a;
    int b;
  } c;
} d;
// co oznacza ze w struktura jedynka zawiera  pole o typie dwojka(ktore tez jest strukturą)
// odwołanie jest następujące
d.c.a = 12; // zapis do a
d.c.b = 35; // zapid do b

W przypadku gdy nie utworzymy pola wewnątrz struktury to utworzy się nazwałbym to "podtyp"

struct jedynka {
  struct dwojka {
    int a;
    int b;
  };
} d;
// wtedy d zawiera tylko definicję struktury wiec aby poslugiwac sie strukturami typu dwojka nalezy
jedynka::dwojka c; // operator :: informuje ze dwojka jest w strukturze jedynka
// w tym wypadku sam obiekt d nie zawiera żadnych danych!

pozdrawiam.

0

Już rozumiem, dzięki za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1