Типи даних в “Сі”. Програмування на мові Сі”

Класи пам’яті

Змінні, незалежно від їх типу, мають свою область видимості і час існування.

Класи пам’яті:

  • auto;
  • static;
  • extern;
  • register.

Всі змінні в мові Сі за замовчуванням є локальними. Вони можуть використовуватися тільки усередині функції або блоку. По завершенні функції їх значення знищується.

Статична змінна також є локальною, але поза свого блоку може мати інше значення, а між викликами функції значення зберігається.

Зовнішня змінна є глобальною. Вона доступна в будь-якій частині коду і навіть в іншому файлі.

Реєстрова мінлива рекомендує компілятору зберігати значення в оперативну пам’ять.

Специфікатори типів даних в Сі можуть не вказуватися у таких випадках:

  • Всі змінні всередині блоку не є змінними, відповідно, якщо передбачається використання саме цього класу пам’яті, то спецификатор auto не вказується.
  • Всі функції, оголошені поза блоку або функції, є за замовчуванням глобальними, тому спецификатор extern не обов’язковий.
  • Базові типи

    Для вказівки простих типів зазначаються специфікатори int, char, float та double. До змінних можуть підставлятися модифікатор unsigned (беззнаковий), signed (знаковий), short, long, long long.

    За замовчуванням усі числа є знаковими, відповідно, можуть перебувати в діапазоні тільки позитивних чисел. Щоб визначити змінну типу char як знакову, пишеться signed char. Long, long long і short вказують, як багато місця в пам’яті відводиться для зберігання. Найбільше – long long, найменше – short.

    Char – найменший тип даних в мові Сі. Для зберігання значень виділяється всього 1 байт пам’яті. Змінної типу character зазвичай присвоюються символи, рідше – цифри. Символьні значення беруться в лапки.

    char a = a”;

    char b = 2;

    Тип int зберігає цілі числа, його розмір не визначений займає до 4 байт пам’яті, в залежності від архітектури комп’ютера.

    int a = 12;

    Явне перетворення беззнаковой змінної задається так:

    unsigned int a = 12;

    Неявне виглядає так:

    int a = 12u;

    Float і double визначають числа з крапкою. Числа float представляються у вигляді -2.3 або 3.34. Double використовується для більшої точності – після роздільника цілої та дробової частини вказується більше цифр. Цей тип займає більше місця в пам’яті, ніж float.

    double a = 12.4567;

    Void має пусте значення. Він визначає функції, які нічого не повертають. За допомогою цього специфікатора вказується пусте значення в аргументах методів. Покажчики, які можуть приймати будь-який тип даних, також визначаються як void.