Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
+ООП_Навч_посібник.doc
Скачиваний:
7
Добавлен:
01.07.2025
Размер:
6.58 Mб
Скачать

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

Загальний|спільний| формат настанови оголошення змінних має такий вигляд:

тип список_змінних х;

У цьому записі елемент тип означає допустимий у мові програмування C++ тип даних, а елемент список_змінних може складатися з одного або декількох імен (ідентифікаторів), розділених між собою комами. Ось декілька прикладів оголошень змінних:

int izm, jzm, kzm;

char ch, chr;

float f, balance;

double d;

У мові програмування C++ ім'я змінної ніяк не пов'язане з її типом.

Згідно з стандартом мови програмування C++, перші 1024 символи будь-якого імені (у тому числі і імені змінної) є значущими. Це означає, що коли двоє імен відрізняються між собою хоча б одним символом з перших 1024, то компілятор розглядатиме їх як різні імена.

Змінні можуть бути оголошені всередині функцій, у визначенні параметрів функцій і поза всіма функціями. Залежно від місця оголошення вони називаються локальними змінними, формальними параметрами і глобальними змінними відповідно. Про важливість цих трьох типів змінних ми поговоримо далі, а поки стисло розглянемо кожен х них окремо.

3.1.1. Локальні змінні

Змінні, які оголошуються усередині функції, називаються локальними. Їх можуть використовувати тільки настанови, що належать тілу функції. Локальні змінні невідомі зовнішнім функціям. Розглянемо конкретний приклад.

Код програми 3.1. Демонстрація механізму використання локальних змінних

#include <iostream> // Для потокового введення-виведення

using namespace std; // Використання стандартного простору імен

void fun_c(); // Оголошення прототипу функції

int main()

{

int x; // Локальна змінна для функції main().

х = 10;

fun_c();

cout << "\n";

cout << x; // Виводиться число 10.

getch(); return 0;

}

void fun_c() // Визначення функції

{

int x; // Локальна змінна для функції fun_c().

x = -199;

cout << x; // Виводиться число -199.

}

Локальна змінна відома тільки функції, у якій вона визначена.

У цій програмі цілочисельна змінна з іменем х оголошена двічі: спочатку у функції main(), а потім у функції fun_c(). Але змінна х з функції main() не має жодного стосунку до змінної х з функції fun_c(). Іншими словами, зміни, яким піддається змінна х з функції fun_c(), ніяк не позначаються на змінній х з функції main(). Тому наведена вище програма виведе на екран числа -199 і 10.

У мові програмування C++ локальні змінні створюються під час виклику функції та руйнуються при виході з неї. Те саме можна сказати і про пам'ять, що виділяється для локальних змінних: під час виклику функції в неї записуються відповідні значення, а при виході з функції пам'ять звільняється. Це означає, що локальні змінні не підтримують своїх значень між викликами функцій.

У деяких літературних джерелах, присвячених мові програмування C++, локальна змінна називається динамічною або автоматичною змінною. Але у цьому навчальному посібнику ми дотримуватимемося поширенішого терміну – локальна змінна.

3.1.2. Формальні параметри

Формальний параметр – це локальна змінна, яка набуває значення аргументу, що передається функції.

Як наголошувалося в розд. 2, якщо функція має аргументи, то вони мають бути оголошені. Їх оголошення здійснюється за допомогою формальних параметрів. Як це показано у наведеному нижче коді програми, формальні параметри оголошуються після імені функції, усередині круглих дужок.

int fun_d(int first, int last, char ch)

{

}

У цьому записі функція fun_d() має три параметри з іменами first, last і ch. За допомогою такого оголошення ми повідомляємо компіляторові тип кожної із змінних, які прийматимуть значення, що передаються функції. Хоча формальні параметри виконують спеціальне завдання – отримання значень аргументів, що передаються функції, їх можна також використо­ву­вати в тілі функції як звичайні локальні змінні. Наприклад, ми можемо присвоїти їм будь-які значення або використовувати у довільних (допустимих у мові програмування C++) виразах. Але, подібно до будь-яких інших локальних змінних, їх значення втрачаються після завершення роботи функції.