46241

Структуры. Действия со структурами. Передача структур в функции

Доклад

Информатика, кибернетика и программирование

Объявление структуры следует рассматривать как объявление типа. В C структуры заключают в себе не только данные но и код и относятся к средствам объектноориентированного программирования. Объявление структуры которая хранит сведения о журнале: название год номер.mgzinmg = { Nture 3 1995;Доступ к элементам структуры осуществляется по составному имени:имя_структуры.

Русский

2013-11-20

14.1 KB

4 чел.

3.Структуры. Действия со структурами. Передача структур в функции.

Структура — это составной тип данных, который состоит из элементов разных типов. Объявление структуры следует рассматривать как объявление типа.

Замечание. В C++ структуры заключают в себе не только данные, но и код и относятся к средствам объектно-ориентированного программирования. В данном разделе объектные свойства структур не рассматриваются.

Пример. Объявление структуры, которая хранит сведения о журнале: название, год, номер.

structmagazin

char* tittle;
intyear;
intnumber;
};

Ниже определена и инициализирована переменная структура mag.
magazinmag = {"Nature", 3, 1995);

Доступ к элементам структуры осуществляется по составному имени:
имя_структуры.имя_элемента.

Здесь точка обозначает оператор выбора, а составное имя дает еще один пример адресного выражения.

Если есть указатель на структуру, то доступ к элементу возмо¬жен при помощи операции косвенного выбора:
указатель_на_структуру->имя_элемента.

Стрелка, составленная из двух символов, обозначает оператор косвенного выбора.
Структуры можно присваивать, передавать в виде параметров функции, возвращать в виде результата функции. Структуры нельзя сравнивать операциями ==, /=, < ,> и т.п. Структуры, как и массивы, можно инициализировать списком значений.

Пример. Работа со структурой magazin.

// объявления и инициализация
magazin *pm, m = ("Nature", 2000, 4};
// доступ к элементам
cout « m.tittle « " " « m.number « endl;
// одна структура в свободной памяти
*pm = newmagazin;
*pm = m;
pm->tittle = "Nature";
deletepm;

// массив структур в свободной памяти 
pm = newmagazin[10];
pm[0].tittle = "Природа";
delete[] pm; 

Передача структур в функцию

Когда структура используется как аргумент функции, передается вся структура с помощью стандартной передачи по значению. Это означает, что любые изменения, внесенные в содержимое структуры внутри функции, не повлияют на структуру, используемую в качестве аргумента.

Когда структура используется как параметр, самое важное - это запомнить, что тип аргумента должен соответствовать типу параметра. Лучший способ сделать это - определить структуру глобально, а затем использовать ее ярлык для объявления необходимых структурных переменных и параметров. Например:

#include<stdio.h>

/* объявление типа структуры */
structstruct_type {
int a, b;
charch;
};

void f1(structstruct_typeparm);

intmain(void)
{
structstruct_typearg;    /* объявление arg */
arg.a = 1000;
f1(arg);
return 0;
}

void f1(structstruct_typeparm) {
printf("%d", parm.a);
}

Данная программа выводит число 1000 на экран. Можно видеть, что как arg, так и parm объявлены как структуры типа struct_type.


 

А также другие работы, которые могут Вас заинтересовать

31872. ЭНДОСКОПИЧЕСКАЯ ДИАГНОСТИКА И ЛЕЧЕНИЕ ГАСТРОЭЗОФАГЕАЛЬНОЙ РЕФЛЮКСНОЙ БОЛЕЗНИ 2.34 MB
  Ацидометрия и исследование моторнодвигательной функции пищевода и желудка. Необходимость дальнейшего изучения различных сторон этиопатогенеза данного заболевания не вызывает сомнений так как до конца не определены вопросы диагностики и выбор оптимального метода лечения в связи с чем целесообразным представляется исследование морфофункционального статуса пищевода у больных данным заболеванием при неэффективности проводимого лечения. В доступной зарубежной и отечественной литературе нет единого мнения о причинах способствующих...
31873. Культурологическая семантика названий улиц и их влияние на формирование культурного фона и мировоззрения человека 108 KB
  Синявского весь мир: глава о советском языке в его книге имеет именно такой подзаголовок: Переименованный мир The Renmed World 1 . Оба процесса и переименования и перепереименования несут значительную культурноидеологическую нагрузку и несомненно создают определенный культурноидеологический мир определенную систему ценностей для тех поколений которые приходят в этот мир без груза прошлых названий и соответственно прошлых миров и систем. Отверженные обиженные разочаровавшиеся они поехали за американской мечтой...
31874. Использование трудовых ресурсов в СПК «Новый путь» Шахунского района Нижегородской области 1.66 MB
  Кроме того это объясняется тем что при возрождаемой конкуренции все большее значение приобретает результативность труда все заметнее сказываются на итогах деятельности как потери понесенные вследствие упущений так и выигрыш полученный от реализации резервов роста производительности труда и повышения эффективности производства. Затраты труда на единицу этих продуктов увеличились почти вдвое что связано в основном со снижением продуктивности животных урожайности культур. Увеличение этого продукта и особенно его основной части вновь...
31875. Багатозначні слова. Пряме й переносне значення слова 36.5 KB
  Пряме й переносне значення слова Тести Варіант 1 1. Лексичне значення слова вивчає: а лексикографія; б лексикологія; в лексика; г лексема. Як називаються значення слова які виникають під впливом різних мовних ситуацій: а прямі; б гіперболічні; в похідні; г полісемічні.
31877. Техническое обоснование разработки компьютерной сети и анализ исходных данных 183 KB
  1 Техническое обоснование разработки компьютерной сети и анализ исходных данных Бухгалтерия и отдел кадров формирует комплексный бухгалтерский отчёт о деятельности предприятия полученной прибыли и произведённых затратах.2 Распределение РС по комнатам и отделам Номер комнаты Площадь помещения м2 Наименование отдела Наименование пользователей в сети Количество РС шт Количество возможных РС шт 412 84 Главный бухгалтер GlvBuh 1 2 Продолжение таблицы 1.2 Номер комнаты Площадь помещения м2 Наименование отдела...
31878. ЭЛЕКТРОННЫЕ КЛЮЧИ 1.08 MB
  В качестве нелинейных приборов с управляемым сопротивлением в электронных ключах используются полупроводниковые диоды транзисторы фототранзисторы тиристоры оптроны электронные лампы.1 Диодные ключи Цель работы исследование статических и динамических параметров и характеристик диодных ключей. На рис.1 а показаны типичные статические ВАХ германиевого Gе и кремниевого Si диодов а на рис.
31879. Определение чистоты лекарственных средств 464 KB
  Каково назначение определения удельного вращения в препаратах кислота аскорбиновая и кислота глютаминовая Приведите формулу для расчета удельного вращения в растворах. Для каких субстанций определяют прозрачность цветность раствора Какие нормативные документы регламентируют определение этих показателей Какими подходами пользуются при определении рН кислотности или щелочности Какие примеси и какими методами определяются согласно разделу блока чистоты Посторонние примеси. Промоделируйте определение прозрачности раствора в...