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.


 

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

5955. PR and the Media. A collaborative relationship? 125.19 KB
  В современном обществе скорость жизни, словно по спирали, увеличивается с каждым днем и ценность своевременной и оперативной информации возрастает вместе с ней. Неудивительно, что СМИ приобретают все большее значение...
5956. Гендерный аспект и его применение в слоганах современной рекламы 119.99 KB
  Введение Название темы данной работы: Гендерный аспект и его применение в слоганах современной рекламы. Термину Гендер в российской науке всего семнадцать лет, а разумное и целесообразное использование рекламы, а значит и слоганов, началос...
5957. Проектирование внутреннего водопровода и канализации жилого здания 87.5 KB
  Внутренний водопровод - это система трубопроводов и устройств, обеспечивающая подачу холодной воды к санитарно-техническим приборам и пожарным кранам, обслуживающая одно здание (в данном курсовом проекте) и имеющее общее водоизмерител...
5958. Договоры банковского вклада (депозита) и банковского счета 115.4 KB
  Одним из важнейших правовых институтов белорусского гражданского законодательства является правовой институт, регулирующий правоотношения в сфере договора банковского вклада банковского счета. Стабилизация белорусской экономики позволила ба...
5959. Политика финансовой стабилизации в РФ. Государственный долг РФ 14.37 KB
  Политика финансовой стабилизации в РФ. Государственный долг РФ. Предполагает обеспечение сохранности рыночного механизма и условий его нормальной работы. Это достигается путём осуществления комплекса мер по борьбе с монополизацией, инфляцией и безра...
5960. Форми організації виховного процесу 72.16 KB
  Форми організації виховного процесу Загальна характеристика форм виховання та їх класифікація Аналіз педагогічної літератури і практики свідчить, що молоді вчителі найбільше труднощів зустрічають в організації виховної роботи...
5961. Форма воспитательной работы по Титовой Е.В и Б.В. Куприянову 141.5 KB
  Фотма воспитательной работы по Титовой Е.В и Б.В. Куприянову. Классификация форм воспитательной работы Вопрос классификации форм воспитательной работы является отнюдь не новым. Определенные основы решения этого вопроса заложены Е.В. Титовой в работе...
5962. Сущность и содержание воспитательной работы в Вооруженных Силах Республики Беларусь 89.5 KB
  Сущность и содержание воспитательной работы в Вооруженных Силах Республики Беларусь Воспитательная работа - это система мер и мероприятий по воздействию на сознание, мировоззрение, волю и чувства военнослужащих (гражданского персонала) в целях ...
5963. Формы воспитательной работы и воспитания 59.5 KB
  Формы воспитательной работы Формы воспитания - это способы организации воспитательного процесса, способы организации коллективной и индивидуальной деятельности учащихся. В педагогической науке не существует единого мнения о формах воспитательной раб...