Преобразование и переименование типов

Базовые типы данных

Типы данных

Типы данных классифицируются на базовые типы, массивы, типы, определяемые пользователем (структуры, объединения, перечисления), указатели, ссылки.

Базовые типы бывают целые, вещественные, символьные, используют стандартные идентификаторы типов:

Короткое целое 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;


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: