Константы. Выражения составляются из констант, переменных и функций, связанных знаками операций

Выражения

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

Константы — это значения, записанные явным образом, буквально. Примеры констант:

1 целое число 1 (тип int)

3.14159 число с плавающей точкой 3.14159 (тип double)

-2.5e-12 число с плавающей точкой -2.5×10-12 (тип double)

'A' алфавитный символ — буква A (тип char)

Для констант не требуется никаких отдельных описаний — тип и значение константы ясны из её внешнего вида. Это означает, что у каждого типа есть свои отличительные признаки.

Константа типа int состоит только из цифр и, может быть, знака «минус» или «плюс». Целые константы могут быть записаны не только в десятичной, но также в восьмиричной или шестнадцатиричной системе[1]. Эти варианты отличают друг от друга по первой (самой старшей) цифре: у десятичных констант первая цифра должна быть отличной от нуля (кроме числа «ноль», которое во всех системах выглядит одинаково), тогда как восьмиричная или шестнадцатиричная запись обязательно начинается с нуля. При этом отличительным признаком шестнадцатиричного числа является буква X или x после нуля, т.е. комбинация 0x или 0X. Поскольку для шестнадцатиричной записи чисел необходимо иметь 16 цифр, то используют 10 арабских цифр (0–9) и 6 первых букв латинского алфавита (A–F) в качестве цифр со значениями от 10 до 15. Пример шестнадцатиричной константы: 0x12B7A (что соответствует десятичному числу 1·164 + 2·163 + 11·162 + 7·161 + 10·160= 65536 + 8192 + 2816 + 112 + 10 = 76666).

Константа с плавающей точкой (типа float или double) обязана содержать по крайней мере один из двух отличительных признаков — точку, отделяющую целую часть от дробной, или порядок, т.е. букву e или E, за которой идет целое число — степень десяти, на которую умножается значащая часть (см. пример выше). Подчеркнем, что при записи числа с порядком точка может и отсутствовать, все равно это будет константа с плавающей точкой. Например, 2e9 — константа типа double, имеющая значение 2×109.

Константа с плавающей точкой по умолчанию имеет тип double. В первоначальной версии языка (до принятия стандарта ANSI C) констант типа float вообще не было. В современном языке константа типа float задается с помощью буквы f или F после числового значения, например, 3.14159F или 6.022E23f. Константа long double указывается аналогичным образом с помощью буквы l или L.

Константа типа char изображает какой-либо символ алфавита (букву, цифру и т.д.). Этот символ заключается в апострофы (одиночные кавычки), которые и служат отличительным признаком (см. пример выше). Как уже говорилось, машинным представлением символа служит его код — порядковый номер в алфавите. Поэтому запись 'A' на самом деле изображает целое число — номер буквы A в алфавите (машинном). Этот номер практически во всех ныне употребляемых алфавитах (кодировках) равен 65. Запись 'A' лучше прямого указания числового значения 65 в нескольких отношениях. Во-первых, 'A' явно задает тип char, тогда как 65 является константой типа int (хотя существует и способ записи числовых кодов типа char — см. ниже). Во-вторых, запись 'A' не зависит от кодировки — компилятор сам подставит правильный код, даже если на компьютере используется какой-нибудь экзотический алфавит, где номер латинской заглавной буквы A отличен от 65. В-третьих, 'A' гораздо яснее отражает смысл программы. Сравните, например, два варианта проверки, является ли содержимое переменной c строчной латинской буквой:

char c;

.......

if (c >= 'a' && c <= 'z')...

и

if (c >= 97 && c <= 122)...

Оба варианта в равной мере законны (типы char и int в выражениях разрешается смешивать) и дают одинаковый результат, но смысл написанного, безусловно, гораздо яснее в первом случае.

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

'\t' — символ табуляции

'\n' — символ перехода к новой строке

'\f' — символ перехода к новой странице

и т.д. (полный список таких комбинаций см. во второй главе книги Кернигана и Ритчи, п. 2.3). По такому же принципу можно задать напрямую произвольный числовой код — после обратной косой черты задается число в восьмиричной или шестнадцатиричной записи. Например, '\101' или '\x41' равносильны записи 'A', поскольку десятичное число 65 (код буквы A) в восьмеричной системе записывается как 101 (1·82+0·81+1·80 = 64+1 = 65). Обратите внимание, что ноль перед числом в этих конструкциях не нужен.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: