Записи 1.1.
static struct S1 { char c[4], *s; } s1 = { "abc", "def" }; | Тип записи S1 относится к записи, содержащей массив символов c длиной 4 и ссылку на символ s. Переменная s1 - это некоторый экземпляр записи S1, инициируемый следующим образом:
char c[4] = "abc", *s = "def"; Поскольку запись была определена как static, то ее можно инициировать при определении. |
static struct S2 { char *ss2; struct S1 ss1; } s2 = { "ghi", { "jkl", "mno" } }; | Тип записи S2 относится к записи, содержащей ссылку на символ cp и экземпляр записи S1 - ss1. Переменная-запись s2 есть экземпляр записи типа S2, инициированный следующим образом:
char *ss2 = "ghi"; struct S1 ss1 = {"jkl","mno"}; |
Рис 1.1 изображает записи s1 и s2.
![]() Рис 1.1 |
Записи 1.2.
PRINT2(c, | Нужно напечатать какой-то символ. |
s1.c[0], | Это первый символ из элемента c записи s1 (рис.1.2-1). |
*s1.s | Это символ, на который указывает элемент s записи s1 (рис.1.2-2). |
![]() Рис.1.2-1 |
![]() Рис.1.2-2 |
Записи 1.3.
PRINT2(s | Нужно напечатать некоторую строку. |
s1.c | Это строка, на которую указывает элемент c записи s1. Напомним, что c=&c[0] (рис.1.3-1). |
s1.s | Это строка, на которую указывает элемент s записи s1 (рис.1.3-2). |
![]() Рис.1.3-1 | ![]() Рис.1.3-2 |
Записи 1.4.
![]() Рис.1.4-1 s2.cp | ![]() Рис.1.4-2 (s2.ss1).s |
Записи 1.5.
![]() Рис.1.5-1 ++(s2.cp) | ![]() Рис.1.5-2 ++((s2.ss1).s) |