46241

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

Доклад

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

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

Русский

2013-11-20

14.1 KB

5 чел.

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.


 

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

71809. ПОНЯТИЕ ЧЕСТИ И ДОСТОИНСТВА В РОССИЙСКОМ ПРАВЕ 116 KB
  Право на достоинство является по существу основной целью всех остальных прав человека. В этом смысле достоинство человека источник его прав и свобод. Достоинство это признание обществом социальной ценности уникальности человека значимости каждой личности как частицы человеческого общества.
71811. ПРАВОВЫЕ ПРОБЛЕМЫ ФОРМИРОВАНИЯ ЭФФЕКТИВНОЙ СИСТЕМЫ СТРАХОВОЙ ЗАЩИТЫ ИМУЩЕСТВЕННЫХ ИНТЕРЕСОВ ГРАЖДАН И ЮРИДИЧЕСКИХ ЛИЦ В РОССИЙСКОЙ ФЕДЕРАЦИИ 106.5 KB
  Это определяет стратегическую позицию страхования в странах с развитой рыночной экономикой. Система страхования играла вспомогательную роль. Для современной России ускоренное развитие страхования как механизма защиты имущественных интересов лиц становится особенно значимым.
71812. Перспективы федеративного объединения Российской Федерации и Республики Беларусь 88.5 KB
  Объединение России и Белоруссии в Союзное государство важнейший вопрос современности как для Российской Федерации так и для Республики Беларусь. Процесс государственно-правовой интеграции России и Белоруссии идет трудно кроме прочего по причине сопротивления ему со стороны влиятельных сил...
71813. ПОНЯТИЕ, СОДЕРЖАНИЕ И КОНСТИТУЦИОННО-ПРАВОВЫЕ ОСНОВЫ ЗАЩИТЫ ПРАВ ЧЕЛОВЕКА ОТ ПРИЧИНЕНИЯ МОРАЛЬНОГО ВРЕДА 184.5 KB
  Основной закон России Конституция исходит из признания высшей ценностью человека его прав и свобод ст. Право лица на восстановление его нарушенного интереса возмещение имущественного ущерба и компенсацию морального вреда гарантированно статьей 46 Конституции и может быть...
71814. НАЛОГ КАК КАТЕГОРИЯ НАЛОГОВОГО ПРАВА 92 KB
  Одной из актуальных проблем налогового права выступает необходимость скорейшего совершенствования и унификации понятийного аппарата в сфере правового регулирования налогообложения. Обращаясь в связи с этим к рассмотрению налогово-правовой категории налога необходимо...
71815. ЭВОЛЮЦИЯ НАЛОГОВО-ПРАВОВЫХ МЕТОДОВ РЕГУЛИРОВАНИЯ ЭКОНОМИКИ СУБЪЕКТА РОССИЙСКОЙ ФЕДЕРАЦИИ С НАЧАЛА 90-Х ГОДОВ XX ВЕКА 145 KB
  В начале 90-х годов произошло существенное изменение роли налогов в экономике России. наделение субъектов Федерации самостоятельными источниками доходов и самостоятельными направлениями их расходования.
71816. ОРГАНИЗАЦИОННО-ТАКТИЧЕСКИЕ ОСНОВЫ РАБОЧЕГО И ЗАКЛЮЧИТЕЛЬНОГО ЭТАПОВ НАЛОЖЕНИЯ АРЕСТА НА ИМУЩЕСТВО 103.5 KB
  Рабочий этап наложения ареста на имущество складывается из трех последовательно сменяющих друг друга стадий предварительной обзорной и детальной. Предварительная стадия включает в себя ряд последовательно выполняемых действий в число которых входят: прибытие на место производства...
71817. Банковская система и её роль в национальной экономике. Особенности её развития в РБ 483.22 KB
  Объект исследования банковская система в Республике Беларусь. Предмет исследования деятельность банков в рамках национальной банковской системы. Цель работы: изучить состояние а также выявить перспективы банковской системы в Республике Беларусь.