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.


 

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

35578. Социология. Курс лекций в схемах 2.05 MB
  Предмет и история социологии. Общество как социокультурная система. Социальные группы и общности. Массовое сознание и общественное мнение. Методология социологических исследований.
35579. История Белоруссии 492 KB
  В истории Белоруси выявлено много белых пятенБНРВКЛсоздание БССР и т.Полоцкая земля находилась на терр сев Белорусии в землях кривичейвключала в себя современную Вит обл.На границе 1314в Полоцкое княжество вошло в состав ВКЛ.В конце 13начале14 веков Туровская земля была включена в состав ВКЛ.
35580. История беларускiх зямель 228.5 KB
  Тэрмiн зясялення тэрыторыi Беларусi – 40 тыс. Iндаеўрапейскi перыяд пачаўся ў бронзавым веку з часу рассялення iндаеўрапейскiх плямён на тэрыторыi Беларусi 3 2 тыс. Засяленне славянамi Беларусi адбывалася ў вынiку мiграцыi славян са сваёй прарадзiмы – тэрыторыi памiж р. Славяне асiмiлiравалi балтаў i ў вынiку славянабалцкага ўзаемадзеяння ўзнiклi новыя этнiчныя супольнасцi: ва ўсходняй Еўропе больш за 15 на тэрыторыi Беларусi – 3 гэта крывiчы дрыгавiчы радзiмiчы.
35581. История Руси от древних времен до ХХ столетия 221 KB
  Древние славяне - большая этническая группа: Восточные (русские, украинцы, белорусы); Западные (Чехи, Поляки); Южные (болгары, сербы, хорваты, македонцы). Соседи с севера: угро-финские племена, норманны, балты. С норманнами были напряженные отношения т.к. они промышляли грабежами, плавали во Францию, Испанию, Италию. Славяне часто платили им дань.
35582. АДМИНИСТРАТИВНОЕ ПРАВО КАК ОТРАСЛЬ ПРАВА 138.5 KB
  Административное право как отрасль современного права появилась тогда когда в правовой системе достаточное место заняли нормы закрепляющие права личности гарантии от административного произвола. Реализация в законодательстве идей естественных и неотъемлемых прав гражданина разделения властей контроля за государственной администрацией необходимое условие превращения полицейского права в административное. Административное право очень важная отрасль права так как роль государственной администрации в России очень велика.
35583. Общее понятие экономической безопасности страны 97 KB
  Понятие национальной безопасности шире понятия экономической безопасности страны оно включает оборонную экологическую энергетическую безопасность и т. Сущность экономической безопасности можно определить как такое состояние экономики и институтов власти при которых обеспечиваются гарантированная защита национальных интересов социально направленное развитие страны в целом достаточный оборонный потенциал даже при наиболее неблагоприятном условии развития внутренних и внешних процессов. Мировая практика показывает что даже при существенном...
35584. Предмет и функции гражданского права 175 KB
  Например: возможно заключение договора который предусматривает ежемесячные поставки в определенном законе если покупатель не сообщит о своем отказе от получения товара в течение какоголибо срока до начала очередного срока молчание €œДА€. Так общества с ограниченной или дополнительной ответственностью ассоциации и союзы действуют на основе учредительного договора и устава. Его можно рассматривать как разновидность договора простого товарищества договора о совместной деятельности хотя существует и мнение о том что это...
35585. Система макроэкономических показателей 232 KB
  Поскольку суммирование разнородной по физическим единицам измерения и целям использования продукции возможно только в стоимостном выражении значения таких показателей будут сильно зависеть от рассматриваемых цен. Различают три вида цен используемых для расчета объемностоимостных показателей: а текущие цены т. цены в которых осуществлялись товарные операции отраженные в статистических данных и на основе которых рассчитывались показатели; б сопоставимые цены т. цены приведенные к определенному моменту времени и зафиксированные на...
35586. Спрос и его факторы. Функция спроса 142.5 KB
  Функция спроса. На динамику спроса оказывают влияние ценовые и неценовые факторы: Цена данного товара Р; Цены других товаров субститутов и комплиментов Рs Рc; Текущие доходы потребителей V; Вкусы и предпочтения потребителей Z; Объективные внешние условия потребления N; Ожидания потребителей Е. Зависимость Д от указанных факторов называется функцией спроса: QД = f Р Рs1 Рsn Рc1 Рcm V Z N E где QД объем спроса. Функция спроса от цены: QД = f P.