Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
53__2.doc
Скачиваний:
7
Добавлен:
05.11.2018
Размер:
147.97 Кб
Скачать

20. Классы памяти.

Каждый объект в проге принадлежит классу памяти, который определяет:

-время жизни переменной t(c), в течении которого она сохраняет своё значение

-область видимости- часть проги, которой доступен данный объект

1)auto-автоматическое(локальные) по умолчанию любая переменная описывается внутри какой-либо функции. Время и область видимости=блоку, где описывается данный объект, последовательность операторов в{}

Void main(){

Int I;

For (i=1;i<10;i++){

Int j;

J=10-I;

Printf(“%d %d”,I,j);}

Printf(“%d”,i);}

I,j –автоматические (локальные) переменные, тк память под них выделяется и освобождается автоматически, память выделяется в СТЭКЕ.

2)extern-внешние (глобальные) t=t проги, область видимости= всей проге, память выделяется в статической памяти с начала работы проги и до конца.

21. Структуры и объединения

(запись с вариантом) Они относятся к ???? типам данных

1)Объединения являются частью структуры, используются для размещения различных полей в одной и той же области памяти

Struct k1 {

Char adr[15]; (adr|tet)

Long tel;}

Unton k2 {

Char adr[15]; (adr tel|)

Long tel;}

2)Структура –одна или несколько переменных, которые для удобства работы сгруппировывается под одним именем

Struct chelovek{ \

Char adr[15]; |

Char imja[10]; | ЯРЛЫКИ

Char familija[20]; |

Long tel;} /

Их можно копировать, выполнять над ними операции присваивания, передавая функциям в качестве аргументов, а функции могут возвращать их в качестве результатов. В данном примере слова chelovek-тег(ярлык)-название этой структуры и далее служит кратким обозначением части в{}.

22.Прямой доступ к

видеопамяти

Видеопамять-память, в которой хранится информация, отображаемая на мониторе

Если в проге назначить указателю адрес видеопамяти, то получим доступ к информации, выводимой на экран монитора(чтение с экрана).

Преимущество-скорость работы

Для текстового режима В800,0000адрес

Char *v=B8000000указатель на видеопамять

*v=’A’;появляется в левом верхнем углу

Каждый символ занимает 2 байта(символ+его атрибуты)

2000 символов4000 байт=видеопамять

23.Отличия С от С++.

C++ объектно-ориентированный язык

1)в СИ описание локальных переменных в начале функции (блока)

{int I,int j;

I=10;

J=i+2;

В С++ можно описать в любом месте проги,где она понадобилась

{int I;

I=10;

Int j=i+2;

2) возможен доступ к глобальным переменным, которые были перекрытыли локальными

Void main(){

Int n=2;

Printf(“%d_%d”,n,n) доступ к глобальным переменным

3)использование cjnst

#define p:3.1415*2

Const a=10;

Int const a=10;

Float const pi=3.1415;

4)в Си все параметры передаются только по ссылкам, с помощью них нельзя вернуть значение функций используются указатели. С++: есть возможность передавать параметры, используя не локальную копию параметра, а его самого

5)с++ позволяет создавать не только собственные функции, но и собственные операторы

(struct s)operator+(ss1,ss2){

Ss3;

S3.zp=s1.zp+s2.zp;

Return s3;}

Void main(){

S3=s1+s2;

6)перезагрузка функций. В С++ можно создать несколько функций с одним именем, но разным количеством и типом параметров

Void print(int n){

Printf(“%d”,n);}

Void print(float f){

Printf(“%f”,f);}

Void print(char *s){

Printf(“%s”,s);}

Void main(){

Print(10);

Print(‘привет’);}

7)можно использовать поток ввода-вывода

#include<iostreams.h>

Cin –ввод-клавиатура

Cout –вывод-монитор

24.Односвязные списки- список, каждый элемент которого соединяет 1 ссылку на следующий элемент struct spis * head,*p,*pied;

Операции:1) p=head;

P=pnext;

2)# p=(spis*)malloc(siceof(spis));

Вставка в начало списка

head

pnext=head;

Head=p;

# вставка в конец

Tail head p

Tail next=1;

pnext=null;

tail=p;

# вставка в середину

Pred head tail p

pnext=pred;

prednext=p;

3) удаление

Head tail

# головы

P=head;

Head=headnext;

Free(p);

# не головы

Prednext=(prednext)next;

P=prednext;

Prednext=pnext;

Free(p);

25.Двусвязный список-список, где у каждого элемента 2 ссылки: на pred и на next. Операции:

1) вставка t p

(data)(data)

А) выделяется память

Б) изменяются ссылки

ppred=t

pnext=tnext

tnextpred=p

tnext=p

2)удаление tnext=pnext;

tnextpred=p;

free(p);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]