- •Лексические элементы языка
- •Соглашение об именах
- •Понятие типа данных
- •Определение переменных
- •Правило видимости (scope rules)
- •Классификация типов данных
- •Характеристики базовых типов данных
- •Константные величины
- •Числовые константы
- •Правила определения компилятором констант таковы:
- •Перечислимые константы
- •Символьные (литерные) константы
- •Строковые константы
- •Именованные (символические) константы
- •Преобразования типов Неявные преобразования.
- •Явные преобразования.
- •Примеры явного приведения типов:
- •Пример неявного преобразования типов
- •Процедура подготовки исполняемой программы
- •Пользовательских символических констант
- •Обращение к функциям
Классификация типов данных
Типы можно классифицировать по разным признакам. Если принять за основу строение элемента, все типы можно разделить на простые (не имеют внутренней структуры) и структурированные (состоят из элементов других типов). По своему «создателю» типы можно разделить на встроенные (стандартные) и определяемые программистом (рис. 2.1). Для данных статического типа память выделяется в момент объявления, при этом ее требуемый объем известен. Для данных динамического типа размер данных в момент объявления может быть неизвестен, и память под них выделяется по запросу в процессе выполнения программы.
Рис. 1 |
Структура типов ЯП С++
Б а з о в ы е Пустой void (используется для указания на отсутствие информации) Скалярный (характеризуется множеством различных значений, среди которых установлен линейный порядок) Целочисленные Логический bool Символьный char wchar_t Целые int short long Вещественный float double long double |
П р о и з в о д н ы е Скалярные Перечисления enum Указатели имя_типа* Ссылки имя_типа& Структурные Массивы Структуры struct Объединения union Классы class
|
Характеристики базовых типов данных
Имя типа Размер, Диапазон значений для
байтов, 16-разрядной
архитектура архитектуры
16 32
Символьныe
[signed]char 1 1 -128 ---- 127
unsign char 1 1 0 ----255
Логический
bool 1 1 true или false
Целые
[signed] short [int] 2 2 -32768 ---32767
unsigned short [int] 2 4 0 --- 65535
[signed] int 2 4 -32768 --- 32767
unsigned int 2 4 0 --- 65535
[signed] long [int] 4 4 -2147483648 – 2147483647
[unsigned] long [int] 4 4 0 --- 4294967295
Вещественные
float 4 4 3.4e-38 ---- 3.4e38
double 8 8 1.7e-308 ---1.7e308
long double 10 10 3.4e-4932 – 3.4e4932
Константные величины
Константы делятся на следующие группы:
Числовые
Целые
Вещественнве
Перечислимые
Символьные (литерные)
Клавиатурные
Кодовые (управляющие или разделительные символы)
Кодовые числовые
Строковые (строки или литерные строки)
Именованные (символические)
Непосредственно записать величину в программе можно с помощью литерной константы.
Компилятор, выделив константу в качестве лексемы (лексического элемента текста) по ее «внешнему виду» относит константу
к той или иной группе данных,
к тому или иному типу данных (внутри группы).
Числовые константы
-
Целые:
десятичные:
например, типа int: 0, 278, -579 -- используются десятичные цифры;
восьмеричные:
например, 00, 01,…,077777,…- используются восьмеричные цифры, запись начинается с нуля;
шестнадцатеричные:
например, 0x0000, 0x0001,…,0x7fff,…- запись начинается с символов 0x.
-
Вещественные:
например, типа double: 3.14 эквивалентна 314e-2, также эквивалентна 0.314E1.
По форме записи числовой константы компилятор определяет ее тип. По умолчанию целые десятичные константы имеют тип int, вещественные – double, если они принадлежат соответствующим множествам значений указанных типов. Если же константа выходит за пределы множества значений типа double или int, то она относится к типу, следующему за double или int по мощности допустимых значений.
Тип числовой константы можно задавать явно с помощью суффиксов:
L,l – long int, например, 35L;
uh, Uh, UH, hu, hU – unsigned short, например, 227UH;
F,f – float, например, 1.5f;
L,l – long double, например, 1E-10L.
Константа с плавающей точкой включает следующие шесть частей, по которым её распознаёт компилятор:
целая часть (десятичная целая константа),
десятичная точка,
дробная часть (десятичная целая константа),
признак экспоненты е или Е,
показатель десятичной степени (десятичная целая константа, возможно со знаком),
суффикс F (или f) либо L (или l).
В записях вещественных констант могут опускаться:
целая часть, дробная часть, но не одновременно!
десятичная точка, но не одновременно!
признак экспоненты с показателем степени.