Константы
Структурированные типы данных
К структурированным типам данных относятся структуры и объединения.
struct <name> // структура
{
type1 name1a[,name1b[…]];
[type2 name2a[,name2b[…]];]
[…]
} [объявление_переменных_с_данным_типом];
union <name> // объединение (все данные размещены с одного адреса //в памяти)
{
type1 name1a[,name1b[…]];
[type2 name2a[,name2b[…]];]
[…]
} [объявление_переменных_с_данным_типом];
Замечание. Точка с запятой после объявления структуры и объединения является обязательной.
Примеры будут рассмотрены далее.
Целые константы задаются с помощью целых чисел без разделяющей точки и имеют тип int. Можно явно указать при помощи суффиксов тип long («l» или «L»), long long («ll» или «LL») или unsigned («u» или «U»).
Пример: 123L, 43u, 53lu, 63UL
Шестнадцатеричные константы определяются добавлением префикса "0х":
0x1F, 0xAD
Восьмеричные константы определяются добавлением префикса "0":
071, 016
Константа с плавающей точкой может включать семь частей: целая часть, десятичная точка, дробная часть, символ экспоненты, показатель десятичной степени (со знаком или без), суффикс. При отсутствии суффикса константы имеют представление double, суффикс f или F соответствует float, суффикс l или L — long double.
В записях вещественных констант могут опускаться (не одновременно): или целая или дробная часть; или десятичная точка или признак экспоненты; суффикс.
Примеры: 45. .6 4.6 1.25f 3.5e-4 5E+6L
Перечислимые константы вводятся при помощи служебного слова enum. Это целочисленные константы, которым присвоены идентификаторы. Идентификаторы могут быть перечислены через запятую, тогда им последовательно присваиваются значения от нуля. Для идентификаторов могут быть указаны значения, меняющие порядок присваивания.
Примеры
enum {zero ,one, two, three} соответствует zero=0, one=1, two=2, three=3.
enum {one=1, two, three} соответствует one=1, two=2, three=3.
enum {ten=10, two=2, three} соответствует ten=10, two=2, three=3.
Символьные (литерные) константы — это один или несколько символов, заключённые в апострофы. Во время компиляции символьные константы заменяются их кодами. Для записи специальных символов используют эскейп-последовательности, которые состоят из двух-четырёх символов и начинаются с символа «обратный слеш». Например \n соответствует переводу строки (код 10), \r — возврат каретки (код 13), \t — табуляция (код 09) и т.д. Для записи некоторых видимых символов также используются эскейп-последовательности: \\ — обратный слеш, \” — двойная кавычка, \’ — одинарная кавычка, \? — знак вопроса.
Использование символьных констант допустимо везде, где возможно использование целочисленных констант. Обратное также верно.
ВНИМАНИЕ Частой ошибкой является запись «\» вместо «\\», например, в полном имени файла.
Строковые константы — это набор символов, заключённый в двойные кавычки. В строковых константах также могут быть применены эскейп-последовательности. Для записи строковой константы, которая занимает несколько строк, в конце каждой из них должен быть использован символ «\».
Переменные могут быть объявлены константными, тогда их значение не может быть изменено в программе. Для этого определено служебное слово const, стоящее перед типом данного при объявлении переменной.
Пример
const int t = 0;
t = 5; // ошибка, нельзя переприсваивать значения константных
//переменных