Оголошення та ініціалізація змінних
Коротко: Оголосити — означає дати змінній ім’я та тип, щоб програма зарезервувала для неї пам’ять. Ініціалізувати — означає присвоїти їй перше значення. Обидві дії можна виконати разом в одному рядку.
Докладніше: Комп’ютер має заздалегідь знати, скільки пам’яті потрібно змінній і що вона може містити. Це відбувається під час оголошення. Після цього вона має отримати допустиме початкове значення, інакше містить випадкове сміття або null.
Подробиці
Оголошення, ініціалізація, присвоєння:
int age; // оголошення: тип і ім’я
age = 17; // ініціалізація: перше значення
int height = 180; // обидві дії в одному рядку
age = 18; // подальше присвоєння (зміна значення)| Крок | Значення | Ефект |
|---|---|---|
| Оголосити | Повідомити ім’я й тип | Пам’ять резервується |
| Ініціалізувати | Присвоїти перше значення | Змінну можна використовувати |
| Присвоїти | Змінити значення пізніше | Старе значення перезаписується |
У різних мовах:
| Мова | Приклад |
|---|---|
| Java, C, C# | int x = 5; (тип указується) |
| Python | x = 5 (тип виводиться, оголошення не потрібне) |
| JavaScript | let x = 5;, const PI = 3.14;, раніше var |
| TypeScript | let x: number = 5; |
| Kotlin | val x = 5 (незмінна), var y = 3 |
| Go | x := 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»). Подвійне оголошення в одній області видимості.
Див. також: Ініціалізувати, Кілька змінних, Змінні