2012-02-02 20 views
0

私はプログラミングに関して変数の定義についていくつかの友人と話し合いました。変数の定義

私の理解では、プログラミングの変数は一定でも変化してもかまいません。

変数wordの実際の定義は変更可能であるため、変更可能な値を参照する識別子は変数であり、定数として定義された値を参照する文字のセットは文字通り定数と呼ばれる。すなわち、

Int constant blah 
Int argh 

したがって、それらの定義によって、それらは定数として、そして変数として参照される。 私の定義は変数blahは定数、arghも変数(定数ではありません)

私はこれらの識別子を間違って参照していますか?

+0

[ウィキペディアの記事](http://en.wikipedia.org/wiki/Variable_(computer_science))は、それをかなりうまく説明しています...* "コンピュータプログラミングでは、変数は、それが表す情報から独立して名前を使用できるようにするために、既知または未知の数量または情報に与えられた記号名です。コンピュータソースコードの変数名は、通常、 プログラミングの変数は、数学の変数の概念に直接対応していない可能性があります。 "* –

+0

したがって、私がウィキペディアで読んだことは、私に信じさせてくれました私の前提は正しかったですが、曖昧さに関連する言葉はいくつかの内容を指しています。 – onaclov2000

答えて

1

私の経験から、あなたが話している相手によって異なります。つまり、私の定義は です*値は...値(1、 "a"など) *変数は値を参照するために使用される名前です。複数の名前を使用して同じ値を参照し、変数によって参照される値が時間とともに変化することは可能ですが、どちらも必須ではありません。コーディグレーで言及

int a = 1; 
    ^variable 
     ^value 

wikipedia linkは、このビューを強化する、または私の意見でいるようです。

純粋に機能する言語には変数がありますが、関数型言語の定義により、変数が指す値はで、は時間の経過とともに変更できません。

あなたの定義はディスカッションのコンテキストにも依存します。あなたが "変数対定数"について話しているならば、彼らは極端な反対意見だと言うのは妥当です。あなたが "変数対価値対キーワード"について話しているならば、あなたは変数variable(kind of)という言葉の別の使い方について話しています。

例として、果物対vegetableを考えてみましょう。科学用語では、ナスは果実です。料理用語では、野菜です。野菜という用語は、科学用語では、果物、根、ナッツその他の様々なものを指すことができます。 "xは果物"が正確かどうかを言うには、ディスカッションのコンテキストを知る必要があります。

2

あなたのお友達が正しいです。定数と変数は、定義によって本質的に相反します。

変数は多くの異なる値を表すことができ、値は名前で参照されるとき不明です。

定数は常に一方の値しか表していませんが、値が分かっていればそれは決して変化しません。

プログラミング言語ではもちろん、非常によく似たものです。それらは通常、同じ命名規則に従い、同じ方法で格納できますが、変数は定数ではないので、定数は変数ではありません。

+0

「バインディング」という概念は、コンテキスト内の名前に名前を「バインド」するという意味で便利です。これには、ローカル変数、グローバル変数、定数、および静的変数が含まれます。 –