Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга6.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.45 Mб
Скачать

3 Прості типи даних

3.1 Оголошення змінних

Типи даних – це спеціальні конструкції мови, що розглядаються компілятором як зразки для створення таких елементів програми, як змінні, константи і функції. Будь-який тип визначає обсяг пам'яті, який виділяє компілятор для розміщення елемента; форму внутрішнього уявлення; множину допустимих значень, а також множину допустимих операцій, які програміст може виконувати над елементами даного типу.

Змінна – це іменована ділянка пам’яті, де зберігається значення, яке може бути змінено програмою. В мові С всі змінні, перед їх використанням повинні бути оголошені (declarate).

Під час оголошення змінної здійснюється виділення пам'яті. Оголошення задає ім'я змінної та її тип. Крім цього, може бути визначене початкове значення для змінної, таке визначення називають ініціалізацією (initialization). Повинно бути одне і тільки одне оголошення змінної в програмі.

Синтаксис оголошення змінної.

[модифікатор] тип ім’я_змінної;

де модифікатори – модифікатор const чи/або один з модифікаторів

класу пам’яті.

тип – тип даних;

ім’я_змінної – ідентифікатор.

Мова C підтримує чотири класи пам'яті, які визначають такими модифікаторами: auto, static, register, extern. Клас пам’яті визначає область видимості і час життя змінної;

При використанні модифікатора const змінна, яку ще називають константною змінною або константою, не буде змінювати своє значення протягом виконання програми. Константи повинні бути ініціалізовані при оголошенні.

Приклад 3.1. Використання модифікатора const.

int apples; /* оголошення змінної apples

типу int без використання

модифікаторів */

auto int apples; /* використання модифікатора

auto */

const auto int apples = 7; /* використання модифікаторів

const та auto*/

3.2 Час існування та область видимості змінних

Кожна змінна, оголошена в програмі, має дві найважливіші характеристики:

  • час існування;

  • область видимості.

Ці характеристики взаємозалежні та істотно впливають на можливості використання змінної у програмі. Взаємозв'язок характеристик визначається способом виділення пам'яті для змінної.

Час існування, або час життя змінної, вимірюється у наступних двох відносних одиницях.

Локальний час життя – це час існування змінної при виконанні блоку, у якому вона оголошена.

Глобальний час життя – це час існування змінної при виконанні всієї програми.

Область видимості, або область дії змінної, також вимірюється в двох відносних одиницях:

  • до кінця блоку, у якому оголошена змінна.

  • до кінця файлу, у якому оголошена змінна.

Керувати цими характеристиками змінних програміст може двома шляхами:

  • зміною місця оголошення змінної у програмі;

  • використанням модифікаторів auto, register, static, extern.

Автоматична (auto) змінна або константа має локальну область дії і відома тільки всередині блоку, у якому вона визначена. Для автоматичної змінної виділяється тимчасова пам'ять. Пам'ять виділяється при вході в блок, а при виході з нього пам'ять, виділена для змінної, вважається вільною, тобто змінна знищується. Якщо специфікатор класу пам'яті не визначений, то зміна вважається автоматичною.

Регістрова (register) змінна відрізняється від автоматичної лише пам'яттю, що виділяється для її збереження. Регістрова змінна зберігається в регістрі процесора, і, відповідно, доступ до цієї змінної набагато швидший, ніж до змінної, яка зберігається в оперативній пам'яті (auto). У випадку відсутності вільних регістрів регістрова змінна стає автоматичною.

Зовнішня (extern) змінна є глобальною змінною. Специфікатор extern інформує компілятор, що змінна буде оголошена (без extern) в іншому файлі, де їй і буде виділена пам'ять.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]