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.


 

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

52948. London Virtual Tour. The Places of Interest in London 300.5 KB
  T.: The theme of our lesson is “Virtual tour about London”. Today we’ll speak about sightseeing in London. We’ll learn some new facts about London, places of its interest by reading, speaking, listening, watching the presentation of your classmates, where some of you will be guides; we’ll do quiz and tests.
52949. Англійська мова з «Family and Friends» - весело і цікаво! 94 KB
  Як мені здається, ми ще не мали такого підручника, який би так ефективно і ефектно поєднував методику навчання англйської мови її носіїв і методику навчання мови як іноземної. А сам вчитель вперше отримав повне методичне забезпечення: не лише класичний комплект (Class Book, Workbook) та книжку для вчителя, а й повний дедактичний комплект.
52950. Being a Personality 281 KB
  Good morning pupils! I’m glad to see you at our lesson. I want to announce that we are going to speak about family relations today. I want you to accumulate a better vision of the subject that seems to be so trivial at first sight. Really, what can be said about a family? But we are to remember that it is a very complicated phenomenon. It’s worth investigating and that is what we are going to do today.
52951. My family and friends 28 KB
  A to repeat and to actualize lexics on the given topic, to prove grammar material (Past Simple Tense),to learn to put general and special question and answer them B to develop communicative and reading skills, to practice in speaking C to develop ability to form your own point of view D to bring up politeness in intercourse
52952. Famous People of the World. William Shakespeare 30 KB
  T: Look at the blackboard. You can see a portrait of a famous man. Do you know who he is? P: He is W. Shakespeare. T: You are right. Today we will speak about one of the famous people of the world- William Shakespeare, his life and work, his role in English literature. I hope you’ll learn many interesting things about this poet.
52953. Life of a Society. Famous people of the USA 48.5 KB
  Today we start learning a new theme “Life of a Society. Famous people of the USA”. While learning this theme you’ll extend your imagination about some famous people of the USA, there deeds, inventions, interests. You’ll learn how there deeds and ideas have changed life of a society, and have made and still are making history. You’ll extend your vocabulary and broaden your world outlook, practise skills of making simple projects. And I hope, you’ll enjoy English.
52955. Чарівні фарби 52.5 KB
  Яка одноманітна похмура і незвична картина виходить Виявляється дуже багато в нашому житті означає колір Маки червоні. Будьякий предмет має свій колір. Через колір ми пізнаємо природу що нас оточує. Що ж таке колір Яка його природа Чому одні предмети сині інші червоні а треті зелені Щоб відповісти на це запитання відгадайте загадку: Що у світі най світліше Наймиліше найтепліше Все від нього навкруги Набирається снаги.
52956. Їжа. Фрукти та овочі 37.5 KB
  Розглянь малюнки і скажи, яку піцу любить Джулія, а яку Мері.T: What does Julia like on her pizza? P: She like tomatoes, cheese, sausage and a cucumber on her pizza. T: What does Mary like on her pizza? P: She like meat, eggs, onion, mushrooms, tomatoes and some oil on her pizza. Згадування слів usually, never. Гра “Find the difference”.s n pple Wht colour is this fruit Its red. T: Wht does Juli like on her pizz P: She like tomtoes cheese susge nd cucumber on her pizz. T: Wht does Mry like on her pizz P: She like met eggs onion mushrooms tomtoes nd some oil on her pizz. T: Wht is yellow in your picture P: Bnns lemons nd oil.