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.


 

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

59728. Біблійні мотиви і пророцтво майбутнього у творчості Тараса Шевченка 74 KB
  Тарас Шевченко виріс у патріархальній українській родині де любов до Бога була неодмінною умовою життя. Українці свято вірили в Бога і ревно молилися а жорстоку панщину сприймали як замах на їхню віру переконання...
59729. День вчителя 36 KB
  Дитина: Вчитель Скільки сили треба Щоб навчити нас усіх І терпіння і бажання Дитина: І надій і сподівання. Дитина: Якби не було вчителя То не було напевне Ні поета ні мислителя Ні Шекспира ні Коперника І понині напевне Якби б не було учителя Невідкритими залишилися б Береги Америки.
59730. Конкурс на тему: Зачаровані казкою 51.5 KB
  Конкурс проходив у двох вікових рівнях у категорії €œІлюстрація до улюбленої казки учні €œ0 та І класів та Як уважно вміємо читати казки учні 2 та 3 класів і вимагав ознайомлення учасників зі змістом слідуючих українських народних казок: а Перша група кл.
59731. Державні символи України 53 KB
  Мета: 1 закцентувати увагу на державних символах; 2 повторити документи які узаконюють державність; 3 показати відображення питань української символіки в літературі та мистецтві; 4 виховання патріотичних почуттів у підростаючого покоління.
59732. Кривенька качечка 40.5 KB
  Нічого я ще не знаю, бабуся миленька. Давай підемо по грибки, ти моя старенька. Бери козуб і корзину, я візьму відерце, Наберемо ще води ми з чистого джерельця, Назбираємо грибочків, ягідок нарвемо, Зваримо юшки із грибами, млинців напечемо.
59733. Свято весни. Методична розробка уроку 40.5 KB
  Здрастуй день і здрастуй сонце ясне Промені червоні вище підіймай Хай земля всміхається прекрасна Виграє веселкою весна. В сиву давнину пора року весна відзначалась великою кількістю розмаїтих обрядів ігор пісень.
59734. Інсценівка для дітей. На лісовій галявині 40.5 KB
  На сцені розкладені вирізані з паперу квіти, на кожній квіточці — цукерка. Це галявина. На галявину вибігає дівчинка, одягнена в одяг жовто-брунатного кольору, на голові великий жовтий бант. Це — Бджілка. В руці кошик. Вона побачила квіти і (почала збирати цукерки-нектар).
59735. Олександр Олесь «Печенізька облога Києва» 34.5 KB
  Олександр Олесь Печенізька облога Києва. Виразне читання поезії Олександра Олеся Печенізька облога Києва. Розкажіть про становище Києва в облозі.