Файл: Понятие переменной в программировании. Виды и типы переменных (подробно).pdf
Добавлен: 22.04.2023
Просмотров: 38
Скачиваний: 1
Массивы структур
Работа с массивами структур аналогична работе со статическими массивами других типов данных.
Пример Библиотека из 3 книг
#include <stdio.h>
#include <stdlib.h>
struct book
{
char title [15];
char author [15];
int value;
};
int main() {
struct book libry[3];
int i;
system(«chcp 1251»);
system(«cls»);
for(i=0;i<3;i++)
{
printf(«Введите название %d книги:»,i+1);
gets(libry[i].title);
printf(«Введите автора %d книги: «,i+1);
gets(libry[i].author);
printf(«Введите цену %d книги: «,i+1);
scanf(«%d»,&libry[i].value);
getchar();
}
for(i=0;i<3;i++)
{
printf(«\n %d. %s «, i+1,libry[i].author);
printf(«%s %d»,libry[i].title,libry[i].value);
}
getchar();
return 0;
}
Указатели на структуры
Доступ к элементам структуры или объединения можно осуществить с помощью указателей. Для этого необходимо инициализировать указатель адресом структуры или объединения.
Для организации работы с массивом можно использовать указатель р или имя массива:
выражение->идентификатор
(*выражение).идентификатор
выражение — указатель на структуру или объединение;
идентификатор — поле структуры или объединения;
Динамическое выделение памяти для структур
Динамически выделять память под массив структур необходимо в том случае, если заранее неизвестен размер массива. Для определения размера структуры в байтах используется операция
sizeof(имя структуры);
Пример Библиотека из 3 книг
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
struct book
{
char title [15];
char author [15];
int value;
};
int main() {
struct book *lib;
int i;
system(«chcp 1251»);
system(«cls»);
lib = (struct book*)malloc(3*sizeof(struct book));
for(i=0;i<3;i++)
{
printf(«Введите название %d книги:»,i+1);
gets((lib+i)->title);
printf(«Введите автора %d книги: «,i+1);
gets((lib+i)->author);
printf(«Введите цену %d книги: «,i+1);
scanf(«%d»,&(lib+i)->value);
getchar();
}
for(i=0;i<3;i++)
{
printf(«\n %d. %s «, i+1, (lib+i)->author);
printf(«%s %d», (lib+i)->title, (lib+i)->value);
}
getchar();
return 0;
}
Результат выполнения аналогичен предыдущему решению.
Заключение
Переменными пользуются практически в каждом языке программирования – это очень удобный способ обращения к памяти. В зависимости от выбранного языка и поставленной задачи можно использовать переменные разных типов: статические и динамические, локальные и глобальные.