Мегаобучалка Главная | О нас | Обратная связь


Структуры: определение, инициализация.



2020-02-03 164 Обсуждений (0)
Структуры: определение, инициализация. 0.00 из 5.00 0 оценок




С. – сложный тип данных, представляющий собой совокупность разнотипных элементов.

Тип стр. – обычно исп. при разработке информационных систем и баз данных.

Struct [ имя типа ]

{ тип 1 элемент_1;

тип 2 элемент_2;

тип n элемент_n;

}[список_описателей];

 Элем-ы стр. наз-ся палями стр. и могут иметь любой тип, кроме типа эт.стр., но может быть ук-лем на него

 пример:

 struct student

{char fam[30];

int kurs;

char group[6];

float ball;}  

student-имя стр.типа, кот. может быть назначен некот. перем.

 Описание перем: [struct] student stud1, stud2(перем.структ.типа);

Может быть совмещено описание типа стр. и объявление перем-х этого типа

пример:

 [struct] student

{char fam[30];

int kurs;

char group[6];

float ball;}

{stud1,stud2,*pst(ук.на структуру);}

 Поля стр. могут быть в свою очередь данными типа стр.

 пример:

 struct point

{float x: float y;};

 struct line

{struct point p1;struct point p2;};

 Инициал.перем.стр.типа

 struct 1{a,b,c,d};

point z={l;2;3}

Перем.стр.типа можно размещать в дин.обл.пам. Для этого надо описать ук.на стр.и выд.под неё место.(пр:student*pst=new student)

 Доступ к элем. стр. осущ.с пом.опер.выбора (точка) при обращении к полю ч/з имя структ. и-> при обращении ч/з ук.

 пример:

struct student stud1, *ps;

ps->stip=150;

 К каждому элем. стр. перем. Stud 1 можно обратится тремя способами.

1) Stud 1. fam;

2) (* pst). fam;

3) pst -> fam

 Если элем. стр. явл. др. стр., то доступ к её элем. осущ. ч/з 2 операции выбора.

Например:

Struct A

{ int a;

double x;

}

Struct B

{ Struct A b;

double x;

} S, x;

S.b.a=1;

S, b. x= 0.5;

S.x=0.125;

x. b. a=2;

x. b. x=-0.5;

x. x.=2.5;

Как видно из примера поля разных стр. могут иметь одинак. имена, т.к. у них разная область видимости. По этой же причине одинак. имена могут иметь полиструктуры и имя перем. из списка описателей ( не рекомендуется).

 

Операции над структурами.

1) Присвоение стр.,если они имеют одинак.тип.При этом происходит поэлементное копирование:

пример:

a) struct student stud1,stud2,*ps;

stud2=stud1;

(*ps)=stud1;

b) struct point a,b;

  (a.x=1;a.y=1;)ó(bx=ax;by=ay) b=a;

2) Вв/выв стр., как и мас-ов, выполняется по элементно(пр:cin>>stud.fam>>stud.kurs; cout<<stud.fam<<” “<<stud.kurs<<endl;

3) Получение адр стр-ы(student stud1,*ps; student ps=&stud1;).В отличие от масс. имя стр.не имеет никакого значения.

 4)Стр-у можно возвращать в качестве значения ф-ии. Стр-у можно передавать в качестве парам.ф-ии.(пр: struct point make(int x, int y) {struct point temp; temp.x=x; temp.y=y; return temp;} b =make(1.1);)

 При вызове ф-ии в качестве фактич.аргум.указываются имена стр-ых перем-ых.(пр:struct complex x,y,z;….z=add1(x,y);)

 

Массивы структур. Объединения.

Структуры, как и др. переменные, могут объединяться в массивы. Массив структур – это удобное ср-во представления и обработки табличной информации. Так например: сведения о ста студентах могут хранится в массиве структур:

Student stud [100];

Тогда сведения об одном студенте могут обозначатся как:

stud [1]. fam;или

stud [5]. kurs;

Объединения

 Об. представляют собой все поля кот представл. по одному адресу.(пр: union имя_типа {определения элементов};

 Длина об. равна наибольшей из длин его полей. В каждый момент времени переменной типа об. хранится только одно значение. Об. применяются для экономии памяти в тех случаях когда известно, что больше одного поля одновременно не требуется.(пр: union s {int i; char k; long int L;};

 

Понятие потока. Классификация потоков.

Под вв/выв понимается процесс обмена инф. м/у оперативной пам. и внеш. устр-ми. Осн. понятием связанным с инф. на вне шустр явл-ся понятие «файл». Всякая опер вв/выв трактуется как опер обмена с файломи. Поэтому организация вв/выв в языке прогр-это организация работы с файлами.

 Различают понятия внутр.(логического) и внешнего (физического). Аналогом понятия внутр. файла в Си явл понятие потока. Поток(stream)-это последовательность байтов, передаваемая в процессе вв/выв и независящая от конкретного устр., с кот производится обмен инф.

Чтение данных из потока наз-ся помещением или подключением.

По направлению обмена потоки можно разделить на входные(данные вводятся в пам.) и данные выводимые из памяти.

По виду устр. с кот. работает поток их можно разделить на:

-стандартные (для передачи данных от клав)

-файловые(для обмена инф. с файлами на внеш носит.)

-строковые(для работы с массивами симв в операт пам)

Для поддержки потоков библ Си содержит иерархию классов построенную на основе класса ios(include output stream)

Этот класс содержит общие для вв и выв поля и методы.

Иерархия классов

 

 

16. Стандартные потоки.

Прямыми потоками класса ios (производными классами) явл-ся класс istream (класс входных потоков) и ostream(класс выходных потоков); потомком этих 2-х классов явл класс iostream вв/выв).

 Объект cout принадлежит классу ofstream и представляет собой поток вывода связанный с дисплеем.Оп. поместить в поток cout<<a означает, что зн. «а» должно быть выв. из пам.на дисплей.

Объект cin принадлежит iostream и явл.потоком связанным с клав. Операции:взять из потока cin>>а означает что значение перем. а должно быть вв с клав в пам.

 



2020-02-03 164 Обсуждений (0)
Структуры: определение, инициализация. 0.00 из 5.00 0 оценок









Обсуждение в статье: Структуры: определение, инициализация.

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (164)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.005 сек.)