Разница между константой и переменной - PullRequest
0 голосов
/ 21 января 2019

В чем именно разница между константой и переменной. Можно ли понимать константы как значения, которые могут быть назначены переменным в программе

1 Ответ

0 голосов
/ 24 января 2019

У вас в основном правильная идея.Правильную идею немного сложно дать с небольшим количеством информации, которую вы даете в своем вопросе.

"константа" немного расплывчата.Имя используется для обозначения литералов, символических констант, константных выражений, неизменяемых переменных ...

В любом случае, ответ сильно зависит от того, какой язык вы используете и в каком контексте вы слышали термин «константа»."in.

Например, в языке программирования C большинство символических констант не существует во время выполнения.Это просто имена, которые заменяются фактическими литеральными значениями в качестве первого шага перед компиляцией.

В других языках константы - это именованные переменные, которые сохраняются во встроенной программе и содержат значение, которое нельзя изменить., и могут быть перечислены или около того.

Подождите, константы иногда являются переменными?

Ну, термины "константа" и "переменная" являются нечеткими понятиями, которые иногда используются неправильно, инет прямого перевода в машинный код.

По сути, есть только память.И память содержит данные.Константы обычно являются частями памяти, которые загружаются с диска операционной системой вместе с вашим скомпилированным кодом, и затем ваш код может их прочитать.Переменные являются частями памяти, для которых «пробелы» в памяти отводятся системой, и тогда ваш код может помещать в нее значения или читать их.

Вот почему довольно сложно дать краткое определениепеременной и константы.Это зависит от того, на каком уровне компьютера вы смотрите, на каком языке.

В большинстве языков символическая константа - это просто более удобное имя, которое вы можете использовать в своем коде для обозначения фиксированного числа илидругое буквальное значение.Имя, значение которого вы можете изменить в одном центральном месте перед компиляцией кода, а во всех других местах, где используется символическое имя, автоматически выбирается значение.

Переменные - это поля, в которые можно поместить любое значение.

Итак, вы в основном правы.Но в зависимости от того, какой язык вы используете, может быть что-то еще.

Причина символических констант состоит в основном в том, чтобы сделать ваш код более читабельным.Вместо

leftCoordinate = 16 + 20 + 4

вы можете написать

leftCoordinate = LEFT_MARGIN + SIDEBAR_WIDTH + LINE_WIDTH

, и внезапно становится гораздо более очевидным, какое из этих чисел вам нужно изменить, чтобы изменить правильную часть.Кроме того, вы можете использовать их, чтобы убедиться, что два числа всегда совпадают.Как и в других местах вашей программы, вы можете иметь код, который рисует «линию», упомянутую выше, и просто делать

setLineWidth(LINE_WIDTH)
drawLine(LEFT_MARGIN + SIDEBAR_WIDTH, 0, LEFT_MARGIN + SIDEBAR_WIDTH, 100)

И если вы когда-нибудь решите, что хотите более тонкую линию, вы просто измените значение константыи все ваш код волшебным образом обновляется, и вам просто нужно перекомпилировать.

...