常数与变量之间的差异

时间:2019-01-21 17:19:45

标签: programming-languages

常量和变量之间的区别到底是什么?常量可以理解为可以分配给程序中变量的值

1 个答案:

答案 0 :(得分:1)

您基本上有正确的想法。只需在问题中提供少量信息,就很难给出正确的想法。

“常数”有点含糊。该名称用于指代文字,符号常量,常量表达式,不可变变量...

无论如何,答案很大程度上取决于您所使用的语言以及所听到的“常量”一词的上下文。

例如,在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)

如果您决定要更细的行,只需更改常量的值,然后 all 即可神奇地更新代码,而只需重新编译即可。