Файл: Понятие переменной в программировании. Виды и типы переменных.pdf
Добавлен: 22.04.2023
Просмотров: 49
Скачиваний: 1
тип имя: КоличествоБит
При работе с битовыми полями нужно внимательно следить за тем, чтобы значение переменной не потребовало памяти больше, чем под неё выделено.
Пример Разработать программу, осуществляющую упаковку даты в формат
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#define YEAR0 1980
struct date
{
unsigned short day : 5;
unsigned short month : 4;
unsigned short year : 7;
};
int main() {
struct date today;
system("chcp 1251");
system("cls");
today.day = 16;
today.month = 12;
today.year = 2013 - YEAR0; //today.year = 33
printf("\n Сегодня %u.%u.%u \n", today.day, today.month, today.year + YEAR0);
printf("\n Размер структуры today : %d байт", sizeof(today));
printf("\n Значение элемента today = %hu = %hx шестн.", today, today);
getchar();
return 0;
}
3.10 Массивы структур
Работа с массивами структур аналогична работе со статическими массивами других типов данных.
Пример Библиотека из 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;
}
3.11 Указатели на структуры
Доступ к элементам структуры или объединения можно осуществить с помощью указателей. Для этого необходимо инициализировать указатель адресом структуры или объединения.
Для организации работы с массивом можно использовать указатель р или имя массива:
выражение->идентификатор
(*выражение).идентификатор
выражение — указатель на структуру или объединение;
идентификатор — поле структуры или объединения;