определение переменной - PullRequest
0 голосов
/ 02 февраля 2012

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

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

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

Int  constant blah
Int  argh 

Таким образом, по своему определению они будут называть бла константой, а аргх - переменной.Мое определение таково: переменная blah является константой, а argh также является переменной (которая не является константой)

Я неправильно ссылался на эти идентификаторы?

Ответы [ 2 ]

2 голосов
/ 02 февраля 2012

Ваши друзья верны. Константы и переменные по своей сути являются противоположностями.

Переменная может представлять множество различных значений, и это значение неизвестно при обращении по имени.

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

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

1 голос
/ 03 февраля 2012

Исходя из моего опыта, это зависит от того, с кем вы разговариваете. Это, как говорится, мое определение * Значение - это ... значение (1, «а» и т. Д.) * Переменная - это имя, используемое для ссылки на значение. Можно использовать несколько имен для ссылки на одно и то же значение, а значение, на которое ссылается переменная, изменяется со временем, но ни одно из них не является обязательным.

int a = 1;
    ^ variable
        ^ value

Ссылка на википедию , упомянутая Коди Грей, подтверждает эту точку зрения или, по-моему, на мой взгляд.

Если это поможет, учтите, что чисто функциональные языки имеют переменные, но, по определению, являясь функциональным языком, значения, на которые эти переменные указывают , не могут меняться со временем.

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

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

...