Программирование на языке си ( с ) | C Sharp (Си шарп) с нуля. Сортировки | Массивы | Функции

Инициализация структуры в си ( c struct )

   Cтруктуры в си

Структуры в си ( c ) - это объединенные данные, у которых есть некоторая логическая взаимосвязь. В отличие от массивов, структуры могут содержать данные разных типов. Вот пару примеров структур в си ( c ): структура класс (имя учащегося, буква класса, средний балл); структура футбольная команда (тренер, название команды, место в турнирной таблице). Т.е. структуру вы будете использовать довольно часто. Теперь давайте рассмотрим, как описываются структуры в си:

struct klass {
   char name[20];
   char klass_name;
   float bal;
};

   struct

Любая структура в языке си ( c ) должна начинаться с ключевого слова - struct, которое сообщает компилятору, что тут у нас будет структура. Все данные в структуре (struct) пишутся в фигурных скобках, и в конце ставится запятая с точкой (;). Советую сразу ставить запятую с точкой, что бы не было ошибок.

Как вы видите, в структуре (struct) у нас находятся данные различных типов, но они объединены в логическую связь, так как в моем примере они являются определенным школьным классом. Данные в структуре должны иметь уникальные имена, но в различных структурах можно использовать одинаковые названия.

Структура, которая создана выше не занимает в памяти компьютера места, так как мы, на самом деле, просто создали свой тип данных. Объявление структуры ни чем не отличается от объявления любого типа данных в языке си ( c ). Вот пример:

struct klass a, b[5], *c;

Мы объявили переменную а типа struct klass, массив b, состоящий из 5 элементов типа struct klass и указатель на переменную struct klass.

Так же можно объявлять переменные сразу после объявления структуры:

struct klass {
   char name[20];
   char klass_name;
   float bal;
} a, b[5], *c;

А какие же операции можно проделывать со структурами? Ответ на этот вопрос лучше перечислить по пунктам:

  1. присваивание полю структуры значение того же типа
  2. можно получить адрес структуры. Не забываем операцию взятия адреса (&)
  3. можно обращаться к любому полю структуры
  4. для того, что бы определить размер структуры можно использовать операцию sizeof()

   Инициализация структуры

Инициализация структуры в языке си ( c ) происходит так же, как и при инициализации массива. Вот пример инициализации структуры:

struct klass a = {"Sergey", 'B', 4.5 };

Т.е. мы создаем переменную типа struct klass и присваиваем всем трем полям, которые у нас определенны в структуре, значения. Порядок очень важен при инициализации структуры, так как компьютер сам не может отсортировывать данные. Если какое-либо поле у вас будет не заполненным, то оно автоматом заполнится 0 - для целочисленных типов; NULL - для указателей; \0 (ноль-терминатор) - для строковых типов.

Задания:

  1. составьте следующие структуры: структура человека (5 общих признаков); структура комплексное число (мнимая и действительные части); структура песни (название трека, имя исполнителя, время, качество). Инициализируйте структуры переменной и присвойте значения.

Следующие уроки:

  1. Доступ к элементам структуры | typedef
  2. Объединение | Перечислимый тип данных
При копировании ( использовании ) материала размещайте ссылку на сайт www.mir-koda.ru