2012-02-02 61 views
0

我最終與一些朋友討論了關於編程方面的變量定義。變量的定義

我的理解是編程中的變量可以是常量或變化的。

他們的觀點是,單詞變量的實際定義是可以改變的,因此一個涉及某個可以改變的值的標識符是一個變量,其中作爲一組引用被定義爲常量的字符的字面意思稱爲常量。即

Int constant blah 
Int argh 

因此,根據它們的定義,他們將blah作爲常數,argh作爲變量。 我的定義是變量等值線是常數,也是一個變量(這不是常數)

我是否錯誤地指這些標識符?

+0

[Wikipedia文章](http://en.wikipedia.org/wiki/Variable_(computer_science))解釋得非常好...*「在計算機編程中,變量是爲某些已知或未知數量或信息提供的符號名稱,目的是允許名稱獨立於其所代表的信息使用。計算機源代碼中的變量名通常與一個數據存儲位置,也就是它的內容,這些可能在程序執行過程中發生變化 編程中的變量可能不直接對應於數學中的變量的概念。「* – 2012-02-02 03:51:09

+0

因此,我在維基百科上讀到的東西讓我相信我的假設是正確的,與blah相關的詞指的是一些內容。 – onaclov2000 2012-02-03 04:45:50

回答

1

從我的經驗來看,這取決於你在和誰說話。也就是說,我的定義是 *值是...值(1,「a」等) *變量是用於引用值的名稱。可以使用多個名稱來引用相同的值,並且可以使用多個名稱來引用由變量引用的值,但這兩個名稱都不是必需的。

int a = 1; 
    ^variable 
     ^value 

Cody Gray提到的wikipedia link強化了這種觀點,或者在我看來似乎是這樣。

如果有幫助,請考慮純功能性語言有變量,但根據定義爲功能性語言,這些變量指向的值不能隨時間變化。

還值得注意的是,你的定義也取決於你的討論的上下文。如果你在談論「變量與常量」,可以合理地說它們是極性的對立面。如果你在談論「變量vs值vs關鍵字」,你在談論單詞變量(種類)的另一種用法。

作爲一個例子,考慮水果與vegetable。在科學術語中,茄子是一種水果。在美食術語中,它是一種蔬菜。在科學術語中,烹飪術語蔬菜可以指的是水果,根,堅果和其他各種各樣的東西。你需要知道你的討論的上下文能夠說出「x是水果」是否準確。

2

你的朋友都對。常數和變量本質上是對立的。

變量可以表示許多不同的值,並且該值在名稱引用時是未知的。

另一方面,常數只代表一個值,如果你知道它的值,你可以指望它永遠不會改變。

當然,在編程語言中它們是非常相似的東西。它們通常遵循相同的命名規則,並且可以以相同的方式存儲,但是,就像變量不是常量一樣,常量不是變量。

+0

我只是補充說,「綁定」的概念很有用,你可以將一個名稱「綁定」到上下文中的值。這包含局部變量,全局變量,常量和靜態變量。 – 2012-02-02 16:54:24