EMZETT.
Увійти

Оголошення та ініціалізація змінних

Коротко: Оголосити — означає дати змінній ім’я та тип, щоб програма зарезервувала для неї пам’ять. Ініціалізувати — означає присвоїти їй перше значення. Обидві дії можна виконати разом в одному рядку.

Докладніше: Комп’ютер має заздалегідь знати, скільки пам’яті потрібно змінній і що вона може містити. Це відбувається під час оголошення. Після цього вона має отримати допустиме початкове значення, інакше містить випадкове сміття або null.

Подробиці

Оголошення, ініціалізація, присвоєння:

int age;            // оголошення: тип і ім’я
age = 17;           // ініціалізація: перше значення
int height = 180;   // обидві дії в одному рядку
age = 18;           // подальше присвоєння (зміна значення)
КрокЗначенняЕфект
ОголоситиПовідомити ім’я й типПам’ять резервується
ІніціалізуватиПрисвоїти перше значенняЗмінну можна використовувати
ПрисвоїтиЗмінити значення пізнішеСтаре значення перезаписується

У різних мовах:

МоваПриклад
Java, C, C#int x = 5; (тип указується)
Pythonx = 5 (тип виводиться, оголошення не потрібне)
JavaScriptlet x = 5;, const PI = 3.14;, раніше var
TypeScriptlet x: number = 5;
Kotlinval x = 5 (незмінна), var y = 3
Gox := 5 або var x int = 5

Важливі правила:

  • Локальні змінні в Java мають мати значення до читання (інакше помилка компілятора). Атрибути отримують значення за замовчуванням (0, false, null).
  • C/C++: неініціалізовані локальні змінні містять сміття — часта помилка та ризик безпеки. Завжди ініціалізуйте.
  • const/final: значення можна задати лише один раз.
  • Видимість (scope): змінна діє лише в блоці, де її оголошено.
  • Імена: змістовні (customerCount замість a), camelCase у Java, snake_case у Python.
  • Кілька в одному рядку: int a = 1, b = 2; (лише коли зрозуміло).
  • Оголошення функцій: у C оголошення (прототип) і визначення (тіло) розділяють.

Помилки: використання змінної до її оголошення («cannot find symbol», «is not defined»). Подвійне оголошення в одній області видимості.

Див. також: Ініціалізувати, Кілька змінних, Змінні