Добавил:
ИВТ (советую зайти в "Несортированное") Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
23.11.2024
Размер:
207.57 Кб
Скачать

НИУ МИЭТ, ИПОВС, КАИ

Типы C/C++

1 / 5

Типы C/C++

Александра Игоревна Кононова

НИУ МИЭТ

5 октября 2020 г. актуальную версию можно найти на https://gitlab.com/illinc/arch-cs

C/C++

НИУ МИЭТ, ИПОВС, КАИ

Типы C/C++

2 / 5

Целочисленные типы C++ (не все)

Не описаны детально в стандарте C++, а наследуются из C.

Знаковые: char, signed char, short, int, long, long long.

Беззнаковые: unsigned char, unsigned short, unsigned, unsigned long, unsigned long long

Указатели: void*, char*, int* ... Длина (беззнаковая): size_t

Разность указателей (знаковая): ptrdi _t

Размеры: char 6 short

6

int

6

long 6 long long

sizeof(char) = 1 [байт]

Размеры беззнаковых типов равны одноимённым знаковым.

Минимальные диапазоны значений стандартных типов C/C++ даны в стандарте C; по ним можно оценить размеры снизу (но зачем?).

Целочисленные типы C++ (не все)

C/C++ Преобразование типов Целочисленные литералы

Ввод-вывод

НИУ МИЭТ, ИПОВС, КАИ

Типы C/C++

3 / 5

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

const_cast снятие/наложение const/volatile;

static_cast неявные преобразования: значение в значение, void* в любой указатель;

dynamic_cast приведение по иерархии наследования;

reinterpret_cast указатель к указателю, указатель к целому, целое к указателю.

1 double x = 1;

2 char *pc = reinterpret_cast<char *>(&x);

Целочисленные типы C++ (не все)

C/C++ Преобразование типов Целочисленные литералы

Ввод-вывод

НИУ МИЭТ, ИПОВС, КАИ

Типы C/C++

4 / 5

Целочисленные литералы

 

Префиксы системы счисления

 

0x, 0X

шестнадцатеричная (0xE = 14, 0xA.0p10 = 10 210 = 10240);

0

(ведущий ноль) восьмеричная (010 = 8);

 

0b, 0B

двоичная (0b010 = 2).

 

без префикса десятичная (1e4 = 104).

 

Суффиксы:

 

 

 

u, U

беззнаковое;

 

l, L

long;

 

ll, LL

long long;

 

f, F

float;

 

l, L

long double.

 

Коды символов ’\0’ == 0, ’\t’ == 9, ’0’ == 48, ’r’ == 114.

А вот "r" литерал уже строковый, с завершающим нулевым символом.

 

Целочисленные типы C++ (не все)

C/C++

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

Целочисленные литералы

 

 

Ввод-вывод

НИУ МИЭТ, ИПОВС, КАИ

Типы C/C++

5 / 5

Ввод-вывод

В поток: <iomanip>

Система счисления (префикс не добавляется):

манипуляторы hex, oct, dec

манипулятор setbase(int base) (фактически 8, 10 и 16).

Регистр цифр A..F и символа E в экспоненциальной форме манипуляторы uppercase и lowercase.

Ширина setw(int w) (только для следующего выводимого значения).

Символ заполнения setfill(int ch).

printf(): аргументы расширяются до 32/64 бит независимо от исходного размера

Целочисленные типы C++ (не все)

C/C++ Преобразование типов Целочисленные литералы

Ввод-вывод

Соседние файлы в папке АВС