Не у всіх мовах є сильне розходження.
В імперативних (таких, як С ++, Паскаль, Java) константа відрізняється тим, що її значення змінити не можна, на відміну від змінної (у якої значення можна змінювати скільки душі завгодно).
Константами часто є аргументи функцій, щоб програміст не зміг випадково в функції змінити значення. Наприклад (псевдокод, дуже грубо, не зовсім вірно, але суть відображає):
Помилка може бути більш завуальованій. Наприклад замість явного привласнення, можна було б викликати foo (str), де foo - деяка функція, яка змінила б рядок. Такі помилки можуть виникати і їх важко знайти.
Тому використовуються константи:
Але це все про імперативних мовах, але питання про програмуванні взагалі, а мови бувають і інші. У функціональних мовах (таких як Lisp, Haskell, Erlang, Closure, і ще мільйон, наприклад, зараз я пишу на мові nip2) і логічних (SWI Prolog, Visual Prolog, Arity Prolog, і ще мільйон прологів) змінної значення можна привласнити лише одні раз. Після присвоєння вона стає константою. А якщо значення змінної вже присвоєно - то його не можна змінити. Функціональні мови при повторному присвоєнні викидають помилки, а логічні можуть як викидати помилку, так і виконувати порівняння старого значення з новим (залежить від мови).
про nip2 (мені дуже сподобався, зручний мову для обробки зображень)
Відмінність наступне. Значення змінної можна змінити в під час виконання програми (наприклад, зробити операцію інкремента або декремента, записати якесь значення). Значення константи можна тільки прочитати, змінити його при виконанні програми не можна, однак, можна змінити у вихідному коді, перед компіляцією.
for (i = 0; i<100;i++) t+=(i*j);
в даному прикладі, є дві змінні i і t і одна константа j. Мінлива i називається лічильником, а змінна t - акумулятором (природно, тільки в даному прикладі). Як видно з наведеного псевдокоду, виконується цикл з приростом лічильника на одиницю, і додатку до акумулятора (t) в кожній ітерації значення лічильника помноженого на константу j.
Константа - величина заздалегідь задана і незмінна. Мінлива навпаки, спочатку може і не мати значення, набуваючи його в процесі роботи програми.
Так, в наведених прикладах розглядався код на С ++, я ж наведу приклад того, як визначається константа і змінна на Java (хоча відмінності не дуже великі):
Є цікаве питання? Задайте його нашої спільноти, у нас напевно знайдеться відповідь!
Діліться досвідом і знаннями, заробляйте нагороди і репутацію, заводите нових цікавих друзів!
Задавайте цікаві питання, давайте якісні відповіді і заробляйте гроші. Детальніше..
Статистика проекту за місяць
Нових користувачів: 7548
Створено питань: 35434
Написано відповідей: 112413
Нараховано балів репутації: 1405279
З'єднання з сервером.