![]() КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Область дії ідентифікатора
Змінні Змінні Змінні і вирази У будь-якій програмі потрібно проводити обчислення. Для обчислення значень використовуються вирази, які складаються з операндів, знаків операцій і дужок. Операнди задають дані для обчислень. Операції задають дії, які необхідно виконати. Кожен операнд є, у свою чергу, виразом або одним з його окремих випадків, наприклад, константою або змінною. Операції виконуються відповідно до пріоритетів. Для зміни порядку виконання операцій використовуються круглі дужки. Розглянемо складові частини виразів і правила їх обчислення. Змінна — це іменована область пам'яті, в якій зберігаються дані визначеного типу. Змінна має ім'я і значення. Ім'я служить для звернення до області пам'яті, в якій зберігається значення. Під час виконання програми значення змінної можна змінювати. Перед використанням будь-яка змінна повинна бути описана.
Приклад опису цілої змінної з ім'ям а і дійсної змінної х: int а; float x; Розглянемо правила завдання складових частин цього оператора. ü Необов'язковий клас пам'яті може приймати одне із значень auto, extern, static і register. ü Модифікатор const показує, що значення змінної змінювати не можна. Таку змінну називають іменованою константою, або просто константою. ü При описі можна привласнити змінній початкове значення, це називається ініціалізацією. Ініціалізатор можна записувати в двох формах — із знаком рівності: = значення або в круглих дужках: (значення)
Загальний вид оператора опису змінних:
[клас пам'яті] [const] тип ім'я [ініціалізатор];
Константа повинна бути ініціалізована при оголошенні. У одному операторові можна описати декілька змінних одного типу, розділяючи їх комами. Приклади: short int а = 1; // ціла змінна а const char С = ‘С’; // символьна константа С char s, sf = 'f’; // ініціалізація відноситься тільки до sf char t (54); float с = 0.22, x(3), sum;
Якщо тип ініціалізованого значення, не співпадає з типом змінної, виконуються перетворення типу за певними правилами. Опис змінної, окрім типу і класу пам'яті, явно або за умовчанням задає її область дії. Клас пам'яті і область дії залежать не тільки від власне опису, але і від місця його розміщення в тексті програми. Область дії ідентифікатора — це частина програми, в якій його можна використовувати для доступу пов'язаної з ним області пам'яті. Залежно від області дії змінна може бути локальною або глобальною. Якщо змінна визначена усередині блоку (нагадаю, що блок обмежений фігурними дужками), вона називається локальною, область її дії — від точки опису до кінця блоку, включаючи всі вкладені блоки. Якщо змінна визначена поза будь-яким блоком, вона називається глобальною і областю її дії вважається файл, в якому вона визначена, від точки опису до його кінця. Клас пам'яті визначає час життя і область видимості програмного об'єкту (зокрема, змінной). Якщо клас пам'яті не вказаний явним чином, він визначається компілятором виходячи з контексту оголошення. Час життя може бути постійним (протягом виконання програми) і тимчасовим (протягом виконання блоку). Область видимості ідентифікатора називається частина тексту програми, з якої допустимий звичайний доступ до пов’язаної з ідентифікатором області пам'яті. Найчастіше область видимості співпадає з областю дії. Виключенням є ситуація, коли у вкладеному блоці описана змінна з таким же ім'ям. В цьому випадку зовнішня змінна у вкладеному блоці невидима, хоча він і входить в її область дії. Проте до цієї змінної, якщо вона глобальна, можна звернутися, використовуючи операцію доступу до області видимості ::. int а; // 1 глобальна змінна а int main() { int b; // 2 локальна змінна b extern int x; // 3 змінна х визначена у іншому місці static int с; // 4 локальна статична змінна с а = 1; //5 присвоювання глобальної змінної int а; //6 локальна змінна а а = 2; //7 присвоювання локальної змінної ::а = 3; //8 присвоювання глобальної змінної return 0; } int x = 4; // 9 визначення і ініціалізація х
В даному прикладі глобальна змінна а визначена поза всіма блоками. Пам'ять під неї виділяється в сегменті даних на початку роботи програми, областю дії є вся програма. Область видимості — вся програма, окрім рядків 6-8, оскільки в першій з них визначається локальна змінна з тим же ім'ям, область дії якої починається з точки її опису і закінчується при виході з блоку. Змінні b і с— локальні, область їх видимості — блок, але час життя різний: пам'ять під b виділяється в стеку при вході в блок і звільняється при виході з нього, а змінна з розташовується в сегменті даних і існує весь час, поки працює програма.
Якщо при визначенні початкове значення змінних явним чином не задається, компілятор привласнює глобальним і статичним змінним нульове значення відповідного типу. Ім'я змінної повинне бути унікальним в своїй області дії (наприклад, в одному блоці не може бути два змінних з однаковими іменами).
Дата добавления: 2014-12-07; Просмотров: 641; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |