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

17. Указатели и ссылки.

Указатель- для люб. типа Т,-Т* означает указатель на объект типа Т. Указатель явл.объектом (Т),хр-щим адрес др объекта(С++). Для обращ. к объекту,на кот.указ.указ-ль,исп.стр-р *,наз.оп-ром разъименов-ся или косвен. обращений. Для получения адреса объекта исп.оп-р &.Пр,

int value;

int*p_value=& value;

Указ-ль p_value м.б.использован для доступа к объекту,на кот.он указ-ет * p_value=1(это означает поместить ед-цу в объект типа int, адрес кот.хр. в объекте p_value). Различают понятие,как «нулевой указ-ль»,кот. ни на что не ссылается. Для таких указ-ей исп.ключ слово null.Пр,

int * p_value;

p_value=null;

18. Динамическое выделение памяти. Свободная память.

Вр. жизни именованного объекта опр-ся его область видимости. С другой стороны часто возникает необх. соз-я объектов ,к-ые сущ-ют вне зависимости от области видимости и, в кот. они созданы(объект (переменная)).

Такие объекты соз. при пом. оп-ра new и уничтожаются при пом. оп-ра delete(b c++). Говорят, что место под объктами выд-ся из свободной памяти(такие объкты наз. ещё «объектами кучи»/ «объектами размещаемые динамической памяти»). Приведённый ниже фрагмент пр-мы будет скомпилирован, но не будет корректно работать. Произойдет утечка памяти

Пр. 11.7 double child (void)

{

dauble d Local Variable

return & d Local Variable

}

19, Файлы

Система в/в языка С и С++ предназначена для р-ты с послед-ти символов наз потоками. Потоку м соответствовать как дисковый файл, так и принтер, терминал и др.

Двоичные потоки однозначно соотв последовательности символов на внешнем устройстве. В отличие от них при работе с текстовыми потоками происходит определенное преобразование нек символов. Ф-ции для р-ты с потоками описаны в заг файле stdio.h. для р-ты с файлами различают следующие ф-ции:

1)FILE * f open (char* name, char* mode) - открывает файл, создает и заполняет структуру файла и воpвращает указатель на нее.

2)Int Fclose (FILE*f) – используется для закрытия файла ранее открытым в ф-ции fopen. Если файл завершен корректно, то возвращает зн0ние 0, обратно – EOF.

3)Int feof (FILE*f) – возвращает ненулевое значение, если была попытка чтения после конца файла.

4)Int fgetc (FILE*f) – считывает 1 символ из файла.

5)Int fputc (int c, FILE*f) – записывает 1 символ в файл.

6)Char * fgets (char *S, int n, FILE*f) – считывает из файла f строку и заносит ее в символьный массив.

7)Int fputs (char *S, FILE*f) - выводит строку в файл.

20. Отличия в/в данных в языках С и С++.

Как и в языке С в С++ для в/в данных используются потоки, каждый из которых представляет собой нек класс.

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

Ios (класс, от которого порождаются все остальные классы управления потоками ).

От данного класса порождаются 2 класса:

- istream (отвечает за ввод данных);

- ostream (отвечает за вывод данных).

В свою очередь данные 2 класса образуют общий класс iostream (отвечает за в/в на экран и ввод с клавиатуры). В класс iostream входят глобальные объекты cout, cin. (объкты класса iostream).

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