Типы данных
1. Базовые (простые) типы
- Целые числа:
int— целое число, минимальный размер 16 бит.short— короткое целое число (обычно 16 бит).long— длинное целое число (обычно 32 бита).long long— очень длинное целое число (минимум 64 бита).
- Знаковые и беззнаковые числа:
signed— знаковое значение (по умолчанию дляint).unsigned— беззнаковое значение.
- Числа с плавающей точкой:
float— число с плавающей точкой одинарной точности (обычно 32 бита).double— число с плавающей точкой двойной точности (обычно 64 бита).long double— расширенная точность (размер зависит от реализации, часто 80 или 128 бит).
2. Тип char
- Хранит одиночный символ или маленькое целое число.
- Может быть:
signed char— знаковый тип (диапазон -128 до 127).unsigned char— беззнаковый тип (диапазон 0 до 255).
- Стандартный
charможет быть либо знаковым, либо беззнаковым (зависит от компилятора).
3. Логический тип
bool(включается с помощью#include <stdbool.h>) — логическое значение, принимаетtrueилиfalse.
4. Перечисления
enum— перечисляемый тип данных:cenum Color { RED, GREEN, BLUE };
5. Массивы
- Набор элементов одного типа фиксированного размера:c
int arr[10];
6. Структуры
struct— пользовательский тип для хранения различных типов данных:cstruct Point { int x; int y; };
7. Объединения
union— хранит разные типы данных в одном и том же месте памяти:cunion Data { int i; float f; };
8. Указатели
- Указатели (
*) используются для хранения адресов:cint *ptr;
9. Тип void
- Используется для обозначения отсутствия типа, например:
- Для функций, не возвращающих значение:c
void myFunction(); - Для указателей:c
void *ptr;
- Для функций, не возвращающих значение:
10. Типы для работы с фиксированными разрядностями (C99)
- Определены в
#include <stdint.h>:int8_t,uint8_t— 8 бит.int16_t,uint16_t— 16 бит.int32_t,uint32_t— 32 бита.int64_t,uint64_t— 64 бита.
- Минимально допустимые размеры:
int_least8_t,int_least16_tи т.д.
11. Типы для работы с размером и индексами
size_t— беззнаковый тип для размеров объектов.ptrdiff_t— знаковый тип для разницы между указателями.
12. Комплексные числа (C99)
- Комплексные числа из
<complex.h>:cdouble complex z = 1.0 + 2.0*I;
13. Битовые поля
- Части структуры для эффективного использования памяти:c
struct { unsigned int field : 4; };