
- •Предисловие.
- •1.1. Алфавит языка Си.
- •1.2. Идентификаторы.
- •1.3. Служебные (ключевые) слова.
- •1.4.Типы данных.
- •1.5. Константы.
- •1.5.1.Арифметические константы.
- •1.5.2. Вещественные константы.
- •1.5.3. Символьные и строковые константы.
- •1.6. Переменные.
- •1.7.Выражения.
- •1.8. Операции.
- •1.9. Приведение типов.
1.5. Константы.
1.5.1.Арифметические константы.
Целые константы. Десятичные константы – целые десятичные константы, запись которых начинается с нуля. Например: 4, -127, 300, 0.
Целые восьмеричные константы. Запись таких констант начинается с нуля, и константа может содержать только цифры алфавита восьмеричной системы счисления. Например, 016, 07.
Целые шестнадцатеричные константы. Запись шестнадцатеричной константы начинается с символов 0х. Например:
0х4В, 0х729, 0хFB.
Тип константы компилятор определяет по следующим правилам: если значение константы лежит в диапазоне типа int, то она получает тип int, в противном случае проверяется, принадлежит ли константа диапазону типа unsigned int, в случае положительного ответа, она получает этот тип, если он не подходит, то пробуется long и, наконец, если не подходит long, то пробуется unsigned long. Если не подходит и этот тип, то возникает ошибка компиляции.
Использование суффиксов. Используя суффиксы при задании константы можно явно задать ее тип, что позволит зачастую экономить память. Существует три вида суффиксов:
F(f) – float;
U(u) – unsigned;
L(l) – long.
При этом суффикс L может использоваться как для целых, так и для вещественных констант. Также допускается совместное использование суффиксов L и U в вариантах LU и UL. Например:
71.32F – константа типа float (выделяется 4 байта);
385 U – константа типа unsigned int (занимает 2 байта).
Именованные константы.
В языке Си/Си++ могут быть определены константы, имеющие фиксированные названия. В качестве имен констант используются произвольно выбираемые программистом идентификаторы (идентификаторы не должны совпадать с ключевыми словами). Традиционно принято для обозначения констант выбирать заглавные буквы. Рассмотрим возможности определения именованных числовых констант.
1). Константы перечисляемого типа.
Целочисленные именованные константы можно вводить с помощью перечисления: enum имя_типа_перечисления (список_именнованных_констант), где enum – служебное слово, вводящее перечисление, имя_типа_перечисления – необязательный идентификатор, список_именованных_констант – разделенная запятыми последовательность идентификаторов или именованных констант вида: имя константы = значение константы.
Примеры:
1). enum { A, B, C, D };
значение константы A=0, значение каждой следующей константы увеличивается на 1, т.е. B=1, C=2, D=3. (В списке нет ни одного элемента со знаком ’=’)
2). enum { A2=2, A3, A4, A5 };
значение константы A2=2, а значение каждой следующей константы увеличивается на 1.
3). enum color { blue, red, black };
в последнем примере введено имя типа констант-перечисления – color. Так как в списке констант нет ни одного элемента со знаком ’=’, то значение констант blue=0, red=1, black=2.
2). Для употребления именованных констант может использоваться служебное слово const.
Примеры:
const float pi=3.14;
const int max_=300;
Именованные константы, определенные с помощью служебного слова const не могут изменяться в течение работы программы.
3). Определение именованных констант на стадии препроцессорной обработки. Для определения именованных констант на стадии препроцессорной обработки используется служебное слово (препроцессорная директива) #define:
#define<имя константы><значение константы>
Например:
#define NUM_i 1
Тип констант явно не указывается и определяется по форме записи.