АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Определение структур

Читайте также:
  1. I. Определение жестокого обращения с детьми.
  2. I. ОПРЕДЕЛЕНИЕ ПРЕДМЕТА МАТЕМАТИКИ, СВЯЗЬ С ДРУГИМИ НАУКАМИ И ТЕХНИКОЙ
  3. T.5 Определение нормальной скорости распространения пламени и термодинамических параметров
  4. T.5. Определение нормальной скорости распространения пламени и термодинамических параметров.
  5. V. Определение классов
  6. V. Определение основных параметров шахтного поля
  7. V.2 Определение величин удельных ЭДС.
  8. VI. ОПРЕДЕЛЕНИЕ РЕЗУЛЬТАТОВ ПЕРВЕНСТВА
  9. VI. Определение учебной нагрузки педагогических работников, отнесенных к профессорско-преподавательскому составу, и основания ее изменения
  10. VII. Определение установившихся скоростей поезда рассчитанной массы на прямом горизонтальном участке пути при работе электровоза на ходовых позициях.
  11. XI. ОПРЕДЕЛЕНИЕ ПОБЕДИТЕЛЕЙ И ПРИЗЕРОВ
  12. А Определение годовых амортизационных отчислений различными способами

Определение структур. Определения элементов (компонентов) структурного типа внешне подобны определениям данных соответствующих типов. Однако имеется существенное отличие. При определении структурного типа его компонентам не выделяется память, и их нельзя инициализировать. Другими словами, структурный тип не является объектом.

Из нашего примера определения структурного типа с названием goods следует, что наименование товара будет связано с указателем типа char*, имеющим имя name. Оптовая цена единицы товара будет значением элемента типа long с названием price. Торговая наценка будет значением элемента типа float с именем percent и т.д. Все это следует из приведенного определения структурного типа с названием goods. Но прежде чем элементы, введенные в определении структурного типа, смогут получить значения, должна быть определена хотя бы одна структура (т.е. структурированный объект) этого типа. Например, следующее определение вводит две структуры, т.е. два объекта, типа goods:

 

 

Итак, если структурный тип определен и известно его имя, то формат определения конкретных структур (объектов структурного типа) имеет вид:

struct имя_структурного_типа список_структур;

 

где список_структур - список выбранных пользователем имен (идентификаторов).

Выше показано, что для структурного типа, имя которого введено с помощью служебного слова typedef, определение структур не должно содержать спецификатора типа struct. Например, указатель на структуры для представления комплексных чисел с помощью определенного выше обозначения структурного типа complex можно определить так:

 

 

Выше был определен структурный тип "рациональная дробь", для которого введены два имени. С их помощью так вводятся конкретные структуры:

 

 

Кроме изложенной последовательности определения структур (определяется структурный тип, затем с использованием его имени определяются структуры) в языке Си имеются еще две схемы их определения. Во-первых, структуры могут быть определены одновременно с определением структурного типа:

struct имя_структурного_типа

{ определения_элементов }

список_структур;

 

Пример одновременного определения структурного типа и структур (объектов):

 

 

Здесь определен структурный тип с именем student и три конкретные структуры student_l, student_2, student_3, которые являются полноправными объектами. В каждую из этих трех структур входят элементы, позволяющие представить имя (name), фамилию (surname), курс (year), на котором обучается студент.

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

 

 

Следующий вариант определения структур является некоторым упрощением приведенного варианта. Дело в том, что можно определять структуры, приведя "внутреннее строение" структурного типа, но не вводя его названия. Такой безымянный структурный тип обычно используется в программе для однократного определения структур:

Struct

{ определения_элементов }

список _структур;

 

В качестве примера определим структуры, описывающие конфигурацию персонального компьютера с такими характеристиками:

• тип процессора (char [10]);

• рабочая частота в МГц (int);

• объем основной памяти в Мбайтах (int);

• емкость жесткого диска в Мбайтах (int).

Пример определения структур безымянного типа:

 

 

В данном случае введены три структуры (три объекта) с именами IBM_486, IBM_386, Compaq. В каждую из определенных структур входят элементы, в которые можно будет занести сведения о характеристиках конкретных ПЭВМ. Структурный тип "компьютер" не именован. Поэтому, если в программе потребуется определять другие структуры с таким же составом элементов, то придется полностью повторить приведенное выше определение структурного типа.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.)