【问题标题】:definition of variable变量的定义
【发布时间】:2012-02-24 18:48:53
【问题描述】:

最后我和一些朋友讨论了关于编程的变量定义。

我的理解是编程中的变量可以是恒定的,也可以是变化的。

他们的观点是,变量这个词的真正定义是它可以改变,因此一个标识符指代某个可以改变的值是一个变量,而一组字符引用一个被定义为常量的值的字面意思是一个常数。即,

Int  constant blah
Int  argh 

因此,根据他们的定义,他们将 blah 称为常量,将 argh 称为变量。 我的定义是变量 blah 是常量,而 argh 也是一个变量(不是常量)

我是否错误地引用了这些标识符?

【问题讨论】:

  • Wikipedia article 解释得很好... “在计算机编程中,变量是赋予某些已知或未知数量或信息的符号名称,目的是允许名称独立于它所代表的信息使用。计算机源代码中的变量名通常与数据存储位置相关联,因此也与它的内容相关联,并且这些可能会在程序执行过程中发生变化。编程中的变量可能不直接对应数学中变量的概念。”
  • 所以我在维基百科上看到的内容让我相信我的假设是正确的,与 blah 相关的词指的是某些内容。

标签: programming-languages semantics


【解决方案1】:

根据我的经验,这取决于您在与谁交谈。话虽如此,我的定义是 * 一个值是……一个值(1、“a”等) * 变量是用于引用值的名称。可以使用多个名称来引用同一个值,并且变量引用的值会随着时间而改变,但这都不是强制性的。

int a = 1;
    ^ variable
        ^ value

Cody Gray 提到的wikipedia link 强化了这一观点,或者在我看来似乎是这样。

如果有帮助,请考虑纯函数式语言具有变量,但根据函数式语言的定义,这些变量指向的值不能随时间变化。

还值得注意的是,您的定义还取决于您讨论的上下文。如果您在谈论“变量与常量”,那么可以合理地说它们是截然相反的。如果您在谈论“变量、值和关键字”,那么您谈论的是变量(种类)这个词的不同用法。

例如,考虑水果与vegetable。在科学术语中,茄子是一种水果。在烹饪术语中,它是一种蔬菜。烹饪术语蔬菜可以指事物,在科学术语中,是水果、根、坚果和各种其他事物。您需要了解讨论的上下文,才能说出 “x 是一种水果” 是否准确。

【讨论】:

    【解决方案2】:

    你的朋友是对的。常量和变量的定义本质上是相反的。

    一个变量可以表示许多不同的值,而当通过名称引用时该值是未知的。

    另一方面,一个常数在任何时候都只代表一个值,如果你知道它的值,你可以指望它永远不会改变。

    当然,在编程语言中它们是非常相似的东西。它们通常遵循相同的命名规则并且可以以相同的方式存储,但是,就像变量不是常量一样,常量也不是变量。

    【讨论】:

    • 我只想补充一点,“绑定”的概念很有用,您可以将名称“绑定”到上下文中的值。这包括局部变量、全局变量、常量和静态变量。
    猜你喜欢
    • 1970-01-01
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    • 2021-02-27
    • 2011-11-20
    • 2015-06-01
    • 2014-10-09
    • 1970-01-01
    相关资源
    最近更新 更多