我最后与一些朋友讨论了关于编程变量的定义。
我的理解是编程中的变量可以是不变的或变化的。
他们的观点是单词变量的真正定义是它可以改变,因此引用可以改变的某个值的标识符是一个变量,其中引用一个定义为常量的值的一组字符字面上被称为一个常数。即,
Int constant blah
Int argh
因此,根据他们的定义,他们将blah称为常数,并将argh称为变量。 我的定义是变量blah是常数而argh也是变量(不是常数)
我是否错误地提到了这些标识符?
答案 0 :(得分:2)
你的朋友是对的。常量和变量基本上与它们的定义相反。
变量可以表示许多不同的值,当名称引用时,该值是未知的。
另一方面,常数只表示一个值,如果你知道它的值,你就可以指望它永远不会改变。
当然,在编程语言中,它们是非常相似的东西。它们通常遵循相同的命名规则并且可以以相同的方式存储,但是,就像变量不是常量一样,常量也不是变量。
答案 1 :(得分:1)
根据我的经验,这取决于你与谁交谈。话虽如此,我的定义是 *值是......值(1,“a”等) *变量是用于引用值的名称。可以使用多个名称来引用相同的值,并且可以使用变量引用的值随时间变化,但这两个名称都不是必需的。
int a = 1;
^ variable
^ value
Cody Gray提到的wikipedia link强化了这种观点,或者似乎在我看来。
如果有帮助,请考虑纯函数式语言有变量,但根据函数式语言的定义,这些变量指向的值不能随时间变化。
值得注意的是,您的定义还取决于您讨论的背景。如果你在谈论“变量与常数”,可以说它们是极端对立的。如果你在谈论“变量与价值与关键词的比较”,那你就是在讨论单词变量(种类)的不同用法。
例如,考虑水果vs vegetable。在科学术语中,茄子是一种水果。在烹饪术语中,它是一种蔬菜。烹饪术语蔬菜可以指科学术语中的东西,水果,根,坚果和各种其他东西。您需要了解讨论的背景,以便能够说明“x是果实”是否准确。