Константы С++
1. Константы С++.
Существует несколько видов констант:
Целая - константа
Символьная – константа
Константа- с – плавающей – точкой
Константа – перечисление
Следующая строка определяет именованную константу:
#define имя подставляемый текст
С этого момента при любом появлении имени оно будет заменяться на соответствующий ему подставляемый текст.
- Целая константа
Рекомендуемые материалы
Целая константа, состоящая из последовательности цифр, воспринимается как восьмеричная, если она начинается с 0, и как десятичная в противном случае. Последовательность цифр, перед которой стоят 0х или 0Х, рассматривается как шестнадцатеричное целое.
Целая константа может быть записана с буквой-суффиксом u (или U) для спецификации ее как безнаковой константы. Она также может быть с буквой-суффиксом l (или L) для указания, что она имеет тип long.
Тип целой константы зависит от ее вида, значения и суффикса. Если константа – десятичная и не имеет суффикса, то она принимает первый из следующих типов, который годится для представления ее значения: int, long int, unsigned long int. Восьмеричная или шестнадцатеричная константа без суффикса принимает первый возможный из типов: int, unsigned int, long int, unsigned long int. Если константа имеет суффикс u или U , то она принимает первый возможный из типов: unsigned int, unsigned long int. Если константа имеет суффикс l или L, то она принимает первый возможный из типов: long int, unsigned long int. Если константа имеет суффикс ul или UL, то она принимает тип unsigned long int.
Примеры:
Целая константа 1234 имеет тип Int. Константа типа long завершается буквой l или L, например 123456789L;слишком большое целое, которое невозможно представить как int, будет представлено как long.
#define YES 1
- Символьная константа
Символьная константа – это последовательность из одной или нескольких символов, заключенная в одиночные кавычки. Символьная константа не может содержать в себе одиночную кавычку или символ новой строки; чтобы изобразить их и некоторые другие символы, могут быть использованы эскейп-последовательности:
Новая строка NL n
Обратная наклонная черта \
Кроме того, произвольный восьмеричный код можно задать в виде ‘ooo’, где ooo – одна, две или три восьмеричные цифры или ‘хhh’ , где hh – одна, две или более шестнадцатеричные цифрыю
#define VTAB ‘013’ /*вертикальная табуляция */
Или в шестнадцатеричном виде:
#define VTAB ‘xb’
Символьная константа ‘ ’ – это символ с нулевым значением, так называемый символ null.
Строковая константа или строковой литерал – это нуль или более символов, заключенных в двойные кавычки, например,
“Я строковая константа”
Или
“”
Кавычки не входят в строку, а служат только ее ограничителями. Так же, как и в символьные константы, в строки можно включать эскейп-последовательности; ” – представляет из себя двойную кавычку. Фактически строковая константа – это массив символов. Во внутреннем представлении строки в конце обязательно присутствует нулевой символ ‘ ’, поэтому памяти для строки требуется на один байт больше, чем число символов заключенных в кавычки.
Надо понимать, что символьная константа и строка, содержащая один символ, не одно и тоже; Запись ‘x’ обозначает целое значение, равное коду буквы х. А запись “х” – массив символов, который содержит один символ х и ‘ ’.
- Константа с плавающей точкой
Константа с плавающей точкой состоит из целой части, десятичной точки, дробной части, e или E и целого(возможно со знаком), представляющего порядок, и, возможно, суффикса типа, задаваемого одной из букв:f,F,l,L. И целая, и дробная часть представляют собой последовательность цифр. Либо целая часть, либо дробная часть (но не обе вместе) могут отсутствовать; также могут отсутствовать десятичная точка или E с порядком(но не одновременно). Тип определяется суффиксом; F или f определяют тип float, L или l – тип long double; при отсутствии суффикса подразумевается тип double.
Например, 123.4 или 1e-2.
- Константа перечисления
Перечисление – это список целых констант, например, в
Enum Boolean {NO, YES}
"3 - Магматические процессы рудообразования" - тут тоже много полезного для Вас.
Первое имя в enum имеет значение 0, следующее -1 и т. д.( если для значений констант не было явных спецификаций). Если не все значения специфицированы, то они продолжают прогрессию, начиная от последнего специфицированного значения, как в следующих двух примерах:
Enum escapes { BELL =’a’, BACKSPACE =’b’, TAB =’t’, NEWLINE=’n’, VTAB=’v’ , RETURN=’r’}
Enum month { JAN =1 , FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC} /* FEB есть 2, MAR есть 3 и т.д. */
Имена в различных перечислениях должны отличаться друг от друга. Значения внутри одного перечисления могут совпадать.
Средство enum обеспечивает удобный способ присвоить константам имена, причем в отличие от #define значения констант при этом способе могут генерироваться автоматически.