Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_С++_последная.doc
Скачиваний:
40
Добавлен:
07.05.2019
Размер:
876.54 Кб
Скачать

Управляющие символьные константы

Оператор

Действие

\b

Пробел

\f

Прогон бумаги

\n

Новая строка

\r

Возврат каретки

\t

Горизонтальная табуляция

\”

Двойная кавычка

\’

Одинарная кавычка

\0

Нуль

\\

Обратная косая черта

\v

Вертикальная табуляция

\a

Звуковой сигнал

\?

Знак вопроса

\N

Восьмеричная константа N

\xN

Шестнадцатеричная константа N

Самые используемые служебные символы: перевод строки (код 13), возврат каретки (код 10), табуляция (код 9). Для задания их в программе в виде символьных констант используется сочетание двух видимых символов, а именно “\n”, “\r”, “\t” соответственно. Для представления символа “слэш“ используется конструкция “\\”.

В языке С существуют четыре спецификатора хранения: extern, static, register, auto.

Эти спецификаторы сообщают компилятору, как хранить объявленную переменную. Общий вид объявления, использующего эти спецификаторы:

спецификатор_хранения тип имя_переменной

Главное предназначение спецификатора extern указать, что объявляемый объект обладает внешними связями в рамках всей программы. В большинстве случаев объявление переменной одновременно является ее определением. Однако, указав перед именем переменной спецификатор extern, можно объявить ее не определяя.

Если локальная переменная объявлена с помощью спецификатора static, компилятор выделит для нее постоянное место для хранения, как и для глобальной переменной.

Применение спецификатора static к глобальной переменной заставляет компилятор создавать глобальную переменную, видимую только в пределах текущего файла. Несмотря на то, что эта переменная остается глобальной, в других файлах она не существует.

Спецификатор register был разработан для того, чтобы компилятор сохранял значение переменной в регистре центрального процессора, а не в памяти, как обычно. Это означает, что операции над регистровыми переменными выполняются намного быстрее.

2.2. Объявление указателя

Указатель – это переменная, содержащая адрес другой переменной. В С/С++ указатели играют исключительно важную роль. Они позволяют создавать очень быстрые и компактные программы, но при этом могут стать источником трудноуловимых ошибок.

Формат объявления указателя:

Тип*Имя;

Несмотря на то, что адреса ячеек одинаковы, указатели имеют разные типы. Для хранения адреса ячейки типа int требуется указатель на тип int, для хранения адреса ячейки типа char требуется указатель на тип char и т.д. Указатели на различные типы данных не обязательно должны иметь одинаковую длину. Пример:

unsigned int *a; //* переменная-указатель на тип unsigned

int */ double *x; //* переменная-указатель на тип double

Как и любая переменная, указатель, объявленный внутри тела функции, содержит случайное начальное значение. Если записать значение по этому адресу, то вероятно, произойдет аварийное завершение программы или зависание, поскольку С++ не контролирует принадлежность ячеек памяти. Чтобы этого избежать, инициализируйте указатели нулем. Пример:

int *a=NULL;

char *b=NULL;

float *c=NULL;