Как я учился программировать на языке С++ >> Глава 1 >> Раздел 6

Главная
Портфолио
Создание Windows приложений
Полезные ссылки
Справочник
Карта сайта
Контакты
"Нет ничего обманчивее,
чем слишком очевидные факты.
"
  Артур Конан Дойл.




Среди множества языков программирования С++ занимает особое место. Он достаточно прост, лаконичен и исключительно эффективен. Язык С++ создан профессионалами для профессионалов и является расширением языка С для поддержки объектно-ориентированной парадигмы программирования.

Содержание


Главная

Часть I
Процедурное программирование в С++

Глава 1
Глава 2
Глава 3
Глава 4
Глава 5
Глава 6

Часть II
Объективно- ориентированное  программирование в С++
 
Глава 7
Глава 8
Глава 9
Глава 10
Глава 11
Глава 12






Часть I - Процедурное программирование в С++
Глава 1 - Основы языка С++
Раздел 6 - Константы и литералы
Раздел 1 Раздел 2 Раздел 3 Раздел 4 Раздел 5 Раздел 6
Раздел 7 Раздел 8 Раздел 9 Раздел 10 Раздел 11 Раздел 12
Примеры решения задач к Главе 1
Резюме к Главе 1
Контрольные вопросы к Главе 1
Задачи для самостоятельного решения к Главе 1
Примечания


Среда Dev-C++ - распространяется бесплатно(Ссылка есть на главной странице сайта)


Раздел 6

Константы и литералы


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

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

В этом смысле константы - это те же переменные, но только с фиксированным, определённым единожды, значением.

Для превращения переменной в постоянное запоминающее устройство, то есть в константу, используют идентификатор const. Идентификатор указывается перед типом переменной и гарантирует неизменность значения переменной. Само значение переменной присваивается либо при объявлении, либо позже в программе, но только один раз и до первого использования переменной в программе.

Например, инструкцией const int m=5 инициализируется целочисленная переменная m со значением 5. После этого переменную можно использовать в выражениях, однако изменить значение переменной не удастся.

Представление литералов в программном коде существенно зависит от типа, к которому относится литерал. Так, отдельные символы - литералы типа char указывается в одиночных кавычках, например 'a' или 'd'. Для литералов типа wchar_t (напомним, это расширенный 16-битовый символьный тип) перед непосредственным значением указывается префикс L.

Примеры литералов типа wchar_t:L'a',L'A',L'd',L'D'.

Несмотря на то, что в С++ нет определённого типа для строчных(текстовых) переменных, в С++ существую литералы типа текстовой строки. Соответствующие значения указываются в двойных кавычках. Примером текстового литерала, например, может быть фраза "Hello, World!".

Подробнее о работе с текстовыми выражениями рассказывается в Главе 5.

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

Здесь действует общее правило: литерал интерпретируется в пределах минимально необходимого типа.

Это правило, кстати, относится не только к числовым литералам. Исключение составляет тип double: литералы в формате числа с плавающей точкой интерпретируются как значения этого типа(а не типа float, как можно было бы ожидать). Тем не менее, в некоторых случаях необходимо в явном виде указать принадлежность литерала к определённому типу. Обычно это делается с помощью специальных суффиксов. Суффикс F после числа в формате с плавающей точкой означает принадлежность литерала к типу float(например 5.3F) Чтобы литерал относился к типу long double, используется суффикс L(например, 5.3L). Этот же суффикс, но у целочисленного литерала означает принадлежность последнего к типу long int(например, 123L). Суффикс U используется с целочисленными литералами для отнесения их к типу unsigned int(например, 123U).

В С++ также существует возможность работать с восьмеричными и шестнадцатеричными литералами(то есть с целочисленными значениями, записанными в восьмеричной и шестнадцатеричной системах счисления соответственно). Напомним, что в восьмеричной системе счисления число в позиционном представлении записывается с помощью цифр от 0 до 7. Если в восьмеричной системе счисления число записано как bnbn-1...b2b1b0, то в десятичной системе это же число определяется суммой b080 + b181 + b282 + ... + bn-18n-1 + bn8n.

В шестнадцатеричной системе в позиционной записи числа используются цифры от 0 до 9  и буквы от A(в десятичной системе соответствует числу 10) до F(в десятичной системе соответствует числу 15). По структуре числа bnbn-1...b2b1b0 в шестнадцатеричной системе перевод в десятичную осуществляется как b0160 + b1161 + b2162 + ... + bn-116n-1 + bn16n. При этом параметры bn принимают значения в диапазоне от 0 до 15(символы от A до F заменяются соответствующими числовыми значениями).

В С++ восьмеричные литералы вводятся с помощью арабских цифр, но каждый восьмеричный литерал должен начинаться с нуля. Поэтому хотя с математической точки зрения первый нуль и является незначащим, в С++ литералы 10 и 010 не эквивалентны. Первый является десятичным значением 10, в то время как второй литерал - восьмеричный и в десятичной системе счисления соответствует числу 8.

Шестнадцатеричные литералы начинаются с последовательности 0х или 0Х. Примеры шестнадцатеричных литералов: 0х10(десятичное число 16), 0Х309(десятичное число 777), 0х1FA(десятичное число 506)







В основу сайта положена информация из книги
"Самоучитель C++ с примерами и задачами. Книга + CD", СПб, Наука и Техника, 2010. - 480с.: ил.(+CD)
2010 - 2011 Все авторские права сохранены
Hosted by uCoz