Базовые типы данных
Типы данных
Типы данных классифицируются на базовые типы, массивы, типы, определяемые пользователем (структуры, объединения, перечисления), указатели, ссылки.
Базовые типы бывают целые, вещественные, символьные, используют стандартные идентификаторы типов:
Короткое целое short int -32768÷32767
Целое int -32768÷32767
Неотрицательное целое unsigned int 0÷65535
Длинное целое long -2*109÷2109
Неотрицат. длинное целое unsigned long 0÷4*109
Веществ.одинарной точности float 3.4*10-38÷3.4*1038
Веществ. двойной точности double 1.7*10-308÷1.7*10308
Веществ. высокой точности long double 3.4*10-4932÷3.4*104932
Символ (один байт) char -128÷127
Беззнаковый символ unsigned char 0÷255
Константы – это лексемы, представляющие собой фиксированные значения.
Целые константы – любые числа без дробной части, не начинающиеся с нуля. Восьмеричные целые константы начинаются с нуля. Шестнадцатиричные констнты начинаются с 0x. Для констант с плавающей точкой можно опустить либо десятичную точку, либо Е, но не то и другое. Символьная константа – это один символ, заключенный в одинарные кавычки (апострофы). Они имеют числовые значения, равные кодам ASCII соответствующих символов. Примеры:
|
|
29, -3, +4569 //целые константы
01, 023, 0407 //восьмеричные
0x1a, 0x10, 0x2F //шестнадцатиричные
3.14, 2e3, 3.4E-5, 10.,.9 //вещественные
‘a’, ‘9’, ‘-‘ //символьные
Символьные константы могут вводить управляющие последовательности для преобразования определенных символов, не имеющих графического аналога:
Одинарная кавычка ' '\''
Ноль (пустой символ) NUL '\0'
Звуковой сигнал(звонок) BEL '\a'
Возврат на шаг(забой) BS '\b'
Перевод страницы FF '\f'
Новая строка(перевод строки) LF '\n'
Возврат каретки CR '\r'
Горизонтальная табуляция HT '\t'
Вертикальная табуляция VT '\v'
Обратная косая черта \ '\\'
Двойная кавычка " '\"'
Байтовое значение в восьмеричной системе '\ddd'
Байтовое значение в шестнадцатиричной системе '\xdd'
Строковая константа - это ноль и более символов, заключенных в двойные кавычки, имеет тип массив символов (char), содержит в конце добавляемый автоматически символ ноль '\0'. Нулевая (пустая строка) записывается в виде "" и хранится в виде одного символа '\0'. Константы могут быть записаны в нескольких строках. Последний символ переносимой строки-это \,он и символ новой строки отбрасываются при выводе данных. Соседние строковые константы, разделенные пробелами, конкатенируются (соединяются).
Язык С++ допускает преобразование (приведение) типов и переименование типов. Желательное правило: в выражениях и операторах лучше использовать переменные и константы одинакового типа. Если типы разные, то выполняется преобразование(приведение) типов. Возможны неявные(стандартные) и явные преобразования типов.
|
|
Неявные преобразования выполняются компилятором автоматически следующим образом:
в выражениях операнды преобразуются к одинаковому типу по схеме: char->short int->unsigned int->long->unsigned long->
float->double->long double;
в операторах присваивания правая часть преобразуется к типу левой части.
Явное преобразование типов выполняется специальной операцией приведения типа, имеющей 2 формы записи:
(tip) vyr; -используется в С и С++;
tip(vyr); - функциональная форма,введена в С++.
Формы почти равноценны, и их выбор -это дело вкуса.
Переименование типа проводится объявлением нового идентификатора типа данных, синонима существующего типа с целью использования более удобного или сокращённого названия. Синтаксис:
typedef tip ident;
,где tip -существующий тип данных;
ident -идентификатор-синоним.
Пример: typedef unsigned int t;
unsigned int x;//Длинное t x;//Короткое название
unsignet int y;//название t y;