web-dev-qa-db-ja.com

識別子と変数の違いは何ですか?

識別子について少し混乱しています。私の教科書には、「Javaで変数(および他の多くのもの)に名前を付けるために識別子を使用しています」と書かれています。

これが何を意味するのかよくわかりません。変数を変数に割り当てるようなものですか?何?

これまでのところ、私はこの印象を得ています:

int a, b, c; a = 2; b = 99; c = a + b;

cは識別子ですか? 「識別子を使用して変数に名前を付ける」と言うとき、intdoublebooleanなどの識別子は変数の分類に使用されますか?いくつか例を示してください。

20
Reena

識別子は変数の名前と考えることができます。私はそれについてあまり努力しません。

例えば:

int a;
a = 15;

この例では、aは同じ名前の変数を参照する識別子です。 aが変数ではなく関数の場合:

int a()
{
}

a();

aは依然として識別子ですが、関数を識別します。 「Reena」が個人と ある種の非営利組織の両方を特定できるように。

27
Tibor

GNU Cには、キーワード、識別子、演算子、定数、区切り文字の5つのトークンがあるというGの定義に同意します。Javaについても同じことが言えます。

intはキーワードとして定義されているため、識別子ではありません。演算子は有効な識別子シンボルのリストから除外されます。定数は単なる値ですが、定数を参照する名前は識別子です。

基本的に、「Word」(1つ以上の有効な識別子記号のグループ)は、キーワードのリストにない限り識別子です。 Javaでは、有効な識別子記号はUnicode文字、数字、ドル、アンダースコアです。数字ca n'tが最初のシンボルになります。 MY_MAGIC_NUMBER = 6のようなマルチワード定数識別子の区切り文字としての例外を除き、ドルとアンダースコアは有効ですが、should n'tを使用します。

5
carlsb3rg

識別子は単に変数の名前です。したがって、変数cの場合、識別子は実際のテキストcです。これは、変数を参照するための単なる方法です。実際の生活で人が複数の名前を持つことができるように、同じ変数に対して複数の識別子を持つことが可能です(後で学習します)。

心配する必要はありません。ループ、条件、クラスなどのより重要なことに集中してください。

5
robbrit

識別子は変数の名前であり、変数はデータの保存場所です。変数は、データが読み取られて変更されるメモリ場所を指します。

4
Hard Developer

Javaでは、識別子はプログラム要素に与えられた名前です。プログラム要素は、パッケージ、タイプ(クラス、インターフェイス、列挙、注釈)、フィールド(インスタンス/静的変数)、列挙定数です。 、注釈タイプの要素、メソッド、ローカル変数、およびパラメーター。基本的に、識別子はプログラム要素を識別します。

たとえば、次のコードでは、

package declarations;

public class A {

    private int value = 1;

    private enum SUITS {CLUB, DIAMOND, HEART, SPADE};

    public A(int val) {
        this.value = val;
    }

    public int doSomething() {
        int c = value + 10;
        return c;
    }
}

// declarations, A, value, SUITS, CLUB, DIAMOND, HEART, SPADE,
// A, val, value, val, doSomething, c, value, c are the 
// identifiers in order of their occurrence.
3
sxnamit

識別子は、次のようなユーザー定義関数の名前と同じです。

int gcd(int,int);

ここで、関数gcdの名前は識別子です。

また、変数は、実行中に変化する可能性がある値を関連付けるために使用されます。

int a,b;
int a=10;

上記の2つの式では、最初に変数を宣言し、2番目に値10を割り当てます。ここで、aとbは変数です。

2
Vishal Tiwari

私はvariable定義されたストレージ領域; RAMで値を保存できる場所があります。変数識別子は名前です]その地域に与えます.

もちろん、識別子は変数以上の名前を付けることができます。関数(in/outパラメーターを含むコードのパック)にも名前があります:function identifier。タイプ(値ドメイン)には、名前タイプ識別子もあります。クラス(関数メンバーを持つタイプ)、クラス識別子などを持ちます。

たとえば、「4」は値です。さらに、整数です。独自の整数を管理したい場合はどうしますか?整数を保存するためのストレージ領域、そのストレージ領域を参照するための名前、その領域に保存する値の種類(タイプ/ドメイン)を定義する必要があり、そのタイプを参照および指定するための名前が必要です。したがって、次のように記述します。

int var;

Javaパーサーが次の構造を持つ文を見た場合:name name;、彼はあなたがストレージ領域を作成していることを知っています。最初の部分は、領域が対象とする値のタイプを指定し、それを指定する唯一の手段は、そのタイプのタイプ識別子を記述することです。タイプ自体は抽象概念であるためです(たとえば、int何かが整数であるという抽象的な概念)。

2番目の部分は、後で使用するためにその領域に付ける名前です。名前を使用してストレージ領域を参照することは、他の手段(たとえば、メモリの方向など)を使用するよりも簡単です。君は)。

1
Peregring-lk

これを正しく理解している場合、これは過剰なエンジニアリングの例のようです(変数名(識別子)を過度に考えるという文脈で)

//変数の定義

int myVariable = 42;

技術的に言えば

42は変数(割り当てられた値)です。

myVariableは識別子です(変数を保存するために作成する名前)

私は通常、識別子を変数として参照するという一般的なアイデアの下で仕事をしており、技術的に知りたい場合は、「変数を保存するために作成する名前は「変数名」であり、値は「変数名」に保存されていることを区別しますは「変数値」です。

1
urso

識別子は、Javaで物に与えられる名前です。これには変数、メソッド、クラスなどが含まれます。したがって、技術的には変数は識別子です。参照: https://www.cs.umd.edu/~clin/MoreJava/Intro/var-ident.html

「これが何を意味するのかよくわかりません。変数に変数を代入するようなものですか...変数に何ですか?」 ->正しい言い方は、変数に「名前」を割り当てることです(変数にどのような名前を付けますか)。

0
Pangs

識別子は変数を明確にする言葉ですが、変数はデータを保存するためのRAM内のスペースです。例:次のような変数を宣言したら、int god; Word intは識別子であり、int god;は、整数データを入力するように宣言された変数です

0
user4306744

例を挙げずにこれをやろうとします。

プログラムのすべてのデータはコンピューターのメモリのどこかに保存され、そのアドレスには名前が付けられます。このメモリ位置を参照するために使用される名前はidentifierと呼ばれます。

この場所のデータを実行時に変更できる場合、この識別子はvariableと呼ばれます。そうでない場合、それは定数であると言います。

0
Harsh Vardhan

簡単に言えば、変数はメモリ内のスペースを占有するものであり、識別子はその場所の名前です。

0
jay

上記の回答に追加

すべての変数は識別子ですが、すべての識別子は変数ではありません。

ex1)関数の名前は識別子であるが変数ではない

0
viswanath

C/C++では、変数、関数、ラベル、その他のさまざまなユーザー定義オブジェクトの名前は識別子と呼ばれます。 16ページ、C++:The Complete Reference、ハーバートシルト。

0
VachMir