Вопрос немного широкий, но ...
Структура - это агрегатный или составной тип данных, используемый для представления сущностей, описываемыхнесколько атрибутов потенциально разных типов.Некоторые примеры:
- Точка в трехмерном пространстве, представленная 3 действительными координатами x, y и z;
- Почтовый адрес, представленный названием улицы,номер дома или квартиры, город, штат, почтовый индекс;
- Позиция в счете, представленная именем или номером детали, стоимостью единицы, количеством и промежуточной суммой;
- Узел вдерево, представленное ключом, значением данных, левым и правым дочерними элементами;
и т. д. и т. д. и т. п.
Давайте рассмотрим почтовый адрес как конкретныйпример.Мы могли бы определить наш тип почтового адреса следующим образом:
struct Address {
char *streetName;
int buildingNumber; // House, apt building, office building, etc.
char *aptNumber; // Handles apt and suite #s like K103, B-2, etc.
char *city;
char state[3];
int zip;
};
Мы создали бы экземпляр этой структуры следующим образом:
struct Address newAddress;
и указатель на этот экземпляр как:
struct Address *addrPtr = &newAddress;
и доступ к каждому из его полей с помощью оператора .
или ->
в зависимости от того, имеем ли мы дело с экземпляром структуры или указателем на структуру:
newAddress.streetName = strdup("Elm");
addrPtr->buildingNumber = 100;
...
Другой способ взглянуть на структуры - это что-то вроде базы данных запись , состоящая из нескольких полей .