
подгон 2018 (легендарный) / 3 курс -20241122T221211Z-001 / АВС / 002_c
.pdf
НИУ МИЭТ, ИПОВС, КАИ |
Типы 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++ Преобразование типов Целочисленные литералы
Ввод-вывод