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.


 

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

5060. Расчет параметров механизма шнека-смесителя 449.5 KB
  КИНЕМАТИЧЕСКИЙ РАСЧЕТ ПРИВОДА Тяговая сила цепи F4 = 2,2 кН Скорость перемещения смеси V4 = 1,5 м/сек Наружный диаметр шнека D=500 мм Срок службы привода – 6 лет Рисунок 1 – расчетная схема привода к шнеку-смесителю Общий КПД привода...
5061. Технологический процесс изготовления шестерни 394 KB
  Одним из путей повышения производительности труда и снижения себестоимости изготовления изделий является совершенствование действующих технологических процессов и их замена более прогрессивными. Эта работа проводится на основе к...
5062. Технологические процессы и оборудование пластического деформирования 25.67 KB
  Сегодня, когда конкурентный рынок вынуждает производителей переходить к наиболее качественным и дешевым продуктам, особенно важно оценить все аспекты производства, распространения и потребления изделия еще на стадии его разработки, чтобы из...
5063. Проектирование привода люлечного элеватора 427 KB
  Определение срока службы привода Срок службы (ресурс). Определение силовых и кинематических параметров привода. Расчет требуемой мощности двигателя. Расчет силовых и кинематических параметров привода...
5064. Розрахунок приводу пластичного конвеєра 2.71 MB
  Технічний рівень усіх галузей народного господарства в значній мірі визначається рівнем розвитку машинобудування. Одним з напрямків вирішення задачі створення і запровадження нових високоефективних і продуктивних знарядь праці є вдосконалення і розвиток конструкцій...
5065. Пожарная нагрузка помещений. Огнестойкость. Классификация помещений и производств по пожароопасности 127 KB
  Пожарная нагрузка помещений. Огнестойкость. Классификация помещений и производств по пожароопасности. Пожарная нагрузка помещений. Пожарная нагрузка – количество теплоты, которое может выделиться в помещение (здание) при пожаре. В нашей стране,...
5066. Дослідження цифро-аналогового перетворювача 108 KB
  Дослідження цифро-аналогового перетворювача Мета роботи: Дослідити роботу цифро-аналогового перетворювача. Завдання: До лабораторної роботи. Із довідника з напівпровідникових інтегральних мікросхем за-писати до теоретичних положен...
5067. Изучение системы автоматизированного моделирования и параметрической оптимизации 823 KB
  Изучение системы автоматизированного моделирования и параметрической оптимизации Цель работы: Ознакомление с системой автоматизированного моделирования и параметрической оптимизации (СИАМ), приобретение практических навыков исследования и оптимизаци...
5068. Память. Факторы забывания и нарушения памяти 64.5 KB
  Впечатления, которые человек получает об окружающем мире, оставляют определенный след, сохраняются, закрепляются, а при необходимости и возможности - воспроизводятся. Эти процессы называются памятью. Без памяти, - писал С.Л. Рубинштейн...