Відмінність константи від змінної в програмуванні

Не у всіх мовах є сильне розходження.

В імперативних (таких, як С ++, Паскаль, 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

З'єднання з сервером.

Схожі статті