Professional Documents
Culture Documents
Лекция 5 константи змінні
Лекция 5 константи змінні
5.1 Літерали
5.2 Змінні
Необов'язкове поле <клас пам'яті> може приймати одне із значень: auto, extern,
static, register.
Модифікатор const використовується для констант.
Ініціалізація записується у вигляді = <значення>.
Опис змінної задає її область видимості (область дії).
Область дії ідентифікатора – це частина програми, в якій його можна
використовувати для доступу до пов'язаної з ним області пам'яті. Залежно від області дії
змінна може бути локальною або глобальною.
Якщо змінна визначена всередині блоку (блок обмежений {}), вона називається
локальної, область її дії – від точки опису до кінця блоку, включаючи всі вкладені блоки.
Якщо змінна визначена поза будь-якого блоку, вона називається глобальної і
область її дії – файл, в якому вона визначена, від точки опису – до його кінця.
Областю видимості ідентифікатора називається частина тексту програми, з якої
допустимо звичайний доступ до пов'язаної з ідентифікатором областю пам'яті. Найчастіше
область видимості збігається з зоною дії.
Винятком є ситуація, коли у вкладеному блоці описана змінна з таким же ім'ям. У
цьому випадку зовнішня змінна у вкладеному блоці невидима, хоча він і входить в її
область дії. До цієї змінної можна звернутися використовуючи операцію доступу до
області видимості ::.
Клас пам'яті визначає час життя і область видимості програмного об'єкта (зокрема,
змінної). Якщо клас пам'яті не вказано явним чином, він визначається компілятором
виходячи з контексту оголошення.
Для завдання класу пам'яті використовуються ідентифікатори:
auto – автоматична змінна. Пам'ять для неї виділяється в стеці і при необхідності
ініціалізується кожен раз, при виконанні оператора, що містить її визначення (для
глобальних змінних – не використовується, для локальних – установлюється за
умовчанням, тому явно, як правило, не вказується);
extern – змінна визначена в іншому місці програми (в іншому файлі або далі в коді).
Використовується для створення змінних, доступних у всіх модулях програми;
static – статична змінна. Час життя постійний. Ініціалізується один раз, при
першому виконанні оператора, що містить визначення змінної. Може бути локальною і
глобальною;
register – аналогічно auto, але пам'ять виділяється по можливості в регістрах
процесора.
return 0;
}
int x=4;
6&3=?
110
& 011
-------
010 –> 6&3=2
5.6 Вирази
Приклади виразів:
(a+0.15)/6 x && y || !z (t*sin(x)- 1.5)/(2*k+4)*(2*k+1)
Контрольні питання:
1. Визначте поняття «літерал», «константа», «змінна», «вираз».
2. Особливості запису вісімкових та шістнадцятирічних констант.
3. Види арифметичних операції на мові С.
4. Порівняйте пріоритет операцій відношень та логічних операції.