Студопедия

КАТЕГОРИИ:


Архитектура-(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; Просмотров: 623; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.015 сек.