2013-07-29
Программирование на языке C. Операции со структурами
Вы можете присваивать значения одной струткурной переменной другой при условии, что эти переменные имеют один и тот же тип. После объявления
Coordinate var1, var2;
Следующий оператор присваивает значения переменной var2 переменной var1:
var1 = var2;
Непосредственно сравнивать две структуры нельзя. Оператор, подобный следующему, не будет скомпилирован:
if (varl == var2) /* ??? */
оператор;
Но если вы не можете сравнивать две структуры, то никто не запрещает вам сравнивать их члены. Вот корректный способ выполнения оператора, если переменные var1 и var2 равны:
if ((var1.x == var2.x) && (var1.у == var2.y)) оператор;
Дата - это хороший пример для того, чтобы показать, как структуры помогают упорядочить данные. Три компоненты даты - день, месяц и год - удобно представлять целыми числами. Вы можете объявить структуру даты следующим образом:
typedef struct date {
char day;
char month;
unsigned year;
} Date;
Члены структуры day и month имеют тип char, диапазон значений которого вполне достаточен, чтобы вместить значения дня (от 1 до 31) и месяца (от 1 до 12). Член структуры year имеет тип unsigned int. Данный код демонстрирует использование структуры Date.
#include
typedef struct dateStruct {
char day;
char month;
unsigned year;
} Date;
main()
{
Date date;
printf("Date test\n");
date.day = 1;
date.month = 7;
date.year = 2013;
printf("The date is: %02d.%02d.%04d\n", date.month, date.day, date.year);
return 0;
}
В строках 14-16 происходит присваивание значений членам структуры date. В строках 17-18 оператор printf() выводит эти значения на экран, добавляя точки и ведущие нули для удобства отображения:
Date test
The date is: 01.07.2013
Вы можете присваивать начальные значения членам структуры прямо в объявлении. Используйте следующую форму записи:
struct name var = {элементы};
Здесь name - имя структуры, var - переменная данного структурного типа, элементы - константные выражения для присваивания членам структуры. Отделяйте константы запятыми, располагая их в соответствии с порядком объявленных в структуре членов. Например, следующая запись присвоит дату 1.09.2014 переменной date:
Date date = {1, 9, 2014};
Все новости>>
2021-04-01
Google сообщил о запуске проекта Dunant
Проект Dunant, начатый в 2018 году, был запущен в эксплуатацию. Трансатлантический интернет-кабель соединяет США и континентальную Европу. Общая протяженность...
подробнее2020-04-06
Новшества в обновленной Windows 10
Корпорация Microsoft завершила разработку обновления, в котором добавлено множество функций. Обновление содержит как доработку уже имеющихся систем, так...
подробнее