Inicjalizacja tablicy struktur [duplikat]

To pytanie ma już tutaj odpowiedź:

Jak zainicjować strukturę zgodnie ze standardami języka programowania C 14 odpowiedzi

Oto inicjalizacja, którą właśnie znalazłem w czyimś pytaniu.

my_data data[]={
    { .name = "Peter" },
    { .name = "James" },
    { .name = "John" },
    { .name = "Mike" }
};

Nigdy wcześniej nie widziałem czegoś takiego i nie mogę znaleźć wyjaśnienia, w jaki sposób .name może być poprawny.
To, czego szukam, to krok po kroku ten proces.

Wygląda na to, że:

1) data;
2) *data;
3) (*data).name;
4) (*data).name="Peter";

A może całkowicie się mylę?

questionAnswers(6)

yourAnswerToTheQuestion