Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Итог_Пособие C++.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.03 Mб
Скачать

1.2.4 Ключевое слово typedef. Тип size_t

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

typedef тип новое_имя;

Новое имя определяется в качестве дополнения к существующему имени типа, а не для его замены.

Например, с помощью следующей инструкции можно создать новое, более короткое, имя для типа long long: typedef long long big;

Таким способом можно повысить переносимость и читаемость программного кода.

Например, в стандартной библиотеке С++ с помощью инструкции typedef определён тип size_t – синоним для беззнакового целого числа, являющегося результатом операции sizeof. Это обозначение типа часто используется в различных функциях стандартной библиотеки, его можно использовать в программном коде на С++, но, конечно, там, где это уместно.

1.3 Константы и переменные

Программа на С++ манипулирует данными, используя для этого константы и переменные.

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

1.3.1 Литералы

Литеральная константа представляет собой константу, тип и значение которой определяется её внешним видом. Она обычно не занимает отдельной памяти, т.к. размещена непосредственно в коде программы. Различают следующие типы литеральных констант.

1. Числовые константы:

* вещественные: 3.14, -2.5

* целые:

десятичные числа 15, 100

восьмеричные числа – запись числа начинается с нуля: 00, 01, 02 …

шестнадцатеричные – начинаются с 0x: 0x10, 0xFF

Тип константы определяется компилятором по её записи. Однако, тип можно задать явно при помощи суффиксов:

l,L – long int, например, 35L

uh, Uh, UH, hu, Hu, hU – unsigned short, например, 227UH

f,F – float, например, 1.5F

l,L – long double, например, 1.5L

2. Символьные константы:

* клавиатурные: ‘a’,’b’,’c’ – клавиатурный символ задаётся в апострофах

* кодовые – для задания некоторых управляющих и разделительных символов:

‘\n’ – перевод строки (код 13)

‘\r’ – возврат каретки (код 10)

‘\\’ – обратная косая черта (удваивается)

‘\’’ – апостроф

и др.

* кодовые числовые – для задания любых ASCII-символов, имеют вид:

‘\xHH’, ‘\XHH’, ‘\0OOO’ , где H, O – шестнадцатеричная и восьмеричная цифры соответственно.

3. Строковые константы:

это последовательности символов, ограниченные двойными кавычками:

“This string constant”

Для задания управляющих и разделительных символов внутри строки используются символьные кодовые и числовые константы без апострофов. Например: ”first\nsecond” – после first вставляется символ перевода строки (т.е. при выводе такой константы second будет выведен в новой строке).

4. Логические константы: true и false.

1.3.2 Переменные

К ним же отнесём и именованные константы.

В теории программирования выделяют шесть фундаментальных характеристик переменной: имя, тип, текущее значение, адрес в памяти, область видимости и время жизни. Первые четыре характеристики в пояснениях не нуждаются – с двумя последними постараемся разобраться.

Область видимости определяет часть тела программы, в которой может быть использована ("видна") данная переменная. Началом области видимости всегда является оператор описания переменной, а концом – либо окончание того блока, в котором описана переменная, либо конец файла. Возможно использование одной и той же переменной и в разных файлах, относящихся к одному проекту.

Переменные, описания которых расположены внутри какого-либо блока, называются локальными. Такие переменные можно использовать, начиная от оператора описания и до конца блока. Переменные, описанные за пределами всех блоков (на внешнем уровне), называются глобальными. Их можно использовать во всей оставшейся части файла, следующей за описанием.

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

Программист может управлять областью видимости и временем жизни переменных двумя путями:

  • изменением места описания переменной в программе;

  • использованием спецификаторов класса памяти в описании переменной.

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