Skip to content

Типы данных

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 — перечисляемый тип данных:
    c
    enum Color { RED, GREEN, BLUE };

5. Массивы

  • Набор элементов одного типа фиксированного размера:
    c
    int arr[10];

6. Структуры

  • struct — пользовательский тип для хранения различных типов данных:
    c
    struct Point {
        int x;
        int y;
    };

7. Объединения

  • union — хранит разные типы данных в одном и том же месте памяти:
    c
    union Data {
        int i;
        float f;
    };

8. Указатели

  • Указатели (*) используются для хранения адресов:
    c
    int *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>:
    c
    double complex z = 1.0 + 2.0*I;

13. Битовые поля

  • Части структуры для эффективного использования памяти:
    c
    struct {
        unsigned int field : 4;
    };