Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C++ Metod_new.doc
Скачиваний:
3
Добавлен:
10.11.2019
Размер:
939.52 Кб
Скачать

2. Видимість змінних

Локальні і глобальні змінні.

У С++ використовуються локальні і глобальні змінні.

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

Змінна є глобальною в тому випадку, якщо вона визначена поза функцією. Звичайно глобальні змінні визначаються вище функції main().

Всі локальні змінні зникають, коли той блок, у якому вони визначені, завершується.

Глобальні змінні (видимі) доступні від точки їхній визначення до кінця файла. Тому якщо ви визначаєте глобальну змінну, то можете використовувати в будь-якому місці програми нижче її визначення (і не важливо, скільки функцій йде далі).

void main()

{

int i, b // локальні змінні

}

int g, h // глобальні змінні

void main()

{

}

Приклад:

#include <iostream.h>

#include <iomanip.h>

float z=10; // глобальна Змінна

void aa(void)

{

int j=5;

cout << "\n" << j << " " << z;

z++;

}

int i=20; // глобальна змінна

void main()

{

float p=30; z++;

cout << z << " " << i << " " << p;

aa();

cout<< "\n" << z;

}

Виведення

11 20 30

5 11

12

Локальна змінна може “жити” тільки в межах блоку.

#include <iostream.h>

void main()

{

int i;

i=10;

{

int i;

i=20;

cout << i << " " << i << "\n";

// Виведення 20 20

{

i=30;

cout <<i<< "\n"; // Виведення 30

}

cout << i<< "\n"; // Виведення 30

}

cout << i; // Виведення 10

}

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

Приклад:

#include <iostream.h>

void cc(int k)

{

float t = 12.5;

cout << (t*float(k)) << “\n”;

}

void main() //Результат при zz = 3 дорівнює 37.5

{

int zz;

cin >> zz;

cc(zz);

}

Автоматичні і статичні змінні.

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

По умовчанню всі локальні змінні автоматичні, для явного оголошення використовують префікс auto. Після блоку (функції) змінні автоматично видаляться.

Локальні статичні змінні не видаляються після завершення функції. Для оголошення статичних змінних використовують ключове слово static. Ініціалізація статичних змінних відбувається при першому виконанні функції. Якщо статична змінна не ініціалізується при першому виклику функції, то C++ привласнює їй 0 (нульове) значення.

Приклад:

#include <iostream.h>

void y(int i)

{

static int total = 10; //Рядок

int a;

a = i*3;

total += a;

cout << “ ” << total;

}

void main()

{

int ctr;

for(ctr = 0; ctr < 2; ctr++)

{

y(ctr);

}

}

Виведення: 10 13

Якщо рядок static int total = 10; замінити рядком static int total; тоді результат: 0 3

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