Обработка математики: 100%
 

printПеременные и типы

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

Арифметические типы

Символьные типы

Название типа Размер Диапазон значений Примеры констант
char 1 байт/8 бит -128..127 или 0..255 'a'
signed char 1 байт/8 бит -128..127 -
unsigned char (char8_t) 1 байт/8 бит 0..255 -
wchar_t 2 или 4 байта UCS-2 (без символов с кодом > 65535) в Windows или Unicode в Linux L'a'

Тип char используется в Си для представления целых чисел размером 1 байт. Тип wchar_t определяется в <wchar.h>, char8_t – в <uchar.h>.

Целые типы

Название типа Размер Диапазон значений Примеры констант
short или short int или signed short 2 байта/16 бит -32768..32767 -
unsigned short или unsigned short int 2 байта/16 бит 0..65535 -
int или signed int 4 байта/32 бита * -2109..2109 42
unsigned или unsigned int 4 байта/32 бита * 0..4109 42u
long или long int или signed long 4 или 8 байт в зависимости от реализации 42l 42L
unsigned long или unsigned long int 4 или 8 байт в зависимости от реализации 42ul 42UL
long long или long long int или signed long long 8 байт/64 бита -91018..91018 42ll 42LL
unsigned long long или unsigned long long int 8 байт/64 бита 0..1019 42ull 42ULL

* по стандарту int может быть 2 байта/16 бит в 16-битных компиляторах для DOS и микроконтроллеров.

В <stdint.h> определяются целые типы, имеющие фиксированное количество бит: int8_t, int16_t, int32_t, int64_t, uint8_t, uint16_t, uint32_t, uint64_t.

Константы для short нужно получать из констант для int с помощью преобразования типа: (short)42

Вещественные типы

Название типа Размер Диапазон значений Точность, десятичных знаков Примеры констант
float 4 байта ±1038 7 12.5f 12.5F 1.5e8f
double 8 байт ±10308 15 12.5 12.5 1.5e8
long double 10 байт ±103000 19 12.5l 12.5L 1.5e8L
float _Complex 8 байт ±1038 7 12.5f+1.5e8f*I
double _Complex 16 байт ±10308 15 12.5+1.5e8*I
long double _Complex 20 байт ±103000 19 12.5L+1.5e8L*I

Запись 1.5e8 интерпретируется как 1.5108. Тип float не рекомендуется использовать из-за низкой точности. Константа I определяется в complex.h, там же определяется синоним complex для _Complex. Для представления вещественных чисел используется двоичная система счисления, поэтому числу 1.11 в компьютере соответствует 1.1100000000000001, а 1.11F - 1.1100000143.

Прочие типы

Тип void означает тип, у которого нет значений. Нельзя определять переменные такого типа. Используется чаще всего для указания, что функция не имеет параметров или не возвращает результатов.

Тип _Bool имеет два значения 0 (ложь) и 1 (истина). При преобразовании в _Bool ненулевое значение превращается в 1, нулевое - в 0. В stdbool.h определяются синоним bool и константы true и false.

Перечисляемый тип задается перечислением имён для возможных значений. Указанные в списке имена становятся целыми константами, имеющими по умолчанию значения, начиная с 0. Можно указать значение для имени явно, тогда следующим в списке именам без явного указания значения будут присвоены следующие по порядку целые числа.

enum color { Red, Green, Blue }; // Red=0, Green=1, Blue=2
enum base { Decimal=10, Octal=8, Hex=16, Undefined }; // Undefined=17

С переменными типа _Bool и перечисляемых типов можно выполнять арифметические действия.

loading