Файл: Понятие переменной в программировании. Виды и типы переменных (подробно).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;
}

Результат выполнения аналогичен предыдущему решению.

Заключение

Переменными пользуются практически в каждом языке программирования – это очень удобный способ обращения к памяти. В зависимости от выбранного языка и поставленной задачи можно использовать переменные разных типов: статические и динамические, локальные и глобальные.