标识符和变量有什 么区别?

问题描述 投票:20回答:14

我对标识符有点困惑。在我的教科书中,它说:“我们使用标识符来命名Java中的变量(和许多其他东西)。”

我不确定这意味着什么。是否像为变量赋值变量?什么?

到目前为止,我得到了这样的印象:

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

c是标识符吗?当它说“使用标识符来命名变量”时,标识符如intdoubleboolean,用于对变量进行分类的东西?请提供一些例子。

variables identifier
14个回答
27
投票

您可以将标识符视为变量的名称。关于它,我不会太过努力。

例如:

int a;
a = 15;

在此示例中,a是引用具有相同名称的变量的标识符。如果a不是变量而是函数:

int a()
{
}

a();

那么a仍然是一个标识符,但它会识别一个函数。正如“Reena”可以识别一个人和some kind of a non-profit organization.


0
投票

简单来说,变量是占用内存空间的东西,而标识符是该位置的名称。


0
投票

标识符是Java中给出的东西的名称。这包括变量,方法,类等。因此,从技术上讲,变量是标识符。见:https://www.cs.umd.edu/~clin/MoreJava/Intro/var-ident.html

关于你对“我不确定这意味着什么的困惑。是否就像给一个变量分配一个变量?什么?” - >正确的说法是:为变量分配一个“名称”(你想要一个变量的名字)。


0
投票

在C / C ++中,变量,函数,标签和各种其他用户定义对象的名称称为标识符。第16页,C ++:完整参考,Herbert Schildt。


0
投票

我会尝试这样做而不举一个例子。

程序中的每个数据都存储在计算机内存中的某个位置,并为其地址指定名称。用于引用此内存位置的名称称为标识符。

如果可以在运行时更改此位置的数据,则此标识符称为变量。如果没有,我们说这是一个常数。


0
投票

添加到上面的答案

每个变量都是一个标识符,但每个标识符都不是变量。

ex1)函数的名称是标识符,但不是变量


5
投票

标识符只是变量的名称。因此对于变量c,标识符是实际文本c,这只是您引用变量的方式。有可能(正如您将在后面了解到的那样)您可以为同一个变量设置多个标识符,有点像现实生活中一个人可以拥有多个名称。

现在不要过于担心它,只要继续尝试并专注于更重要的东西,如循环,条件,类等。


5
投票

我同意GNU C的定义,即C中有5个令牌:关键字,标识符,运算符,常量和分隔符。 Java也是如此。

int不是标识符,因为它被定义为关键字。运算符从有效标识符符号列表中排除。常量只是值,但引用常量的名称是标识符。

基本上:任何“单词”(一组1个或多个有效标识符符号)都是标识符,只要它不在关键字列表中即可。在Java中,有效的标识符符号是Unicode字母,数字,美元和下划线。数字不能成为第一个符号。除了作为MY_MAGIC_NUMBER = 6等多字常量标识符中的分隔符之外,不应使用美元和下划线,尽管它们是有效的。


4
投票

标识符是变量的名称,变量是数据的存储位置。变量指向读取和修改数据的内存位置


3
投票

在Java中,identifier是给予程序元素的名称,其中程序元素可以是包,类型(类,接口,枚举,注释),字段(实例/静态变量),枚举常量,注释类型元素,方法,局部变量和参数。实质上,标识符标识程序元素。

例如,在以下代码中,

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.

2
投票

标识符就像任何用户定义函数的名称一样

int gcd(int,int);

这里函数gcd的名称是标识符。

变量用于分配在执行期间可能变化的值,例如

int a,b;
int a=10;

在上面的两个表达式中,第一个是声明变量,第二个是我们赋值10.这里a和b是变量。


1
投票

如果我理解这一点,这似乎是过度工程的一个例子(在过度思考变量名称(标识符)的背景下)

//变量定义

int myVariable = 42;

从技术上讲

42是变量(赋值)。

myVariable是Identifier(我们创建的用于存储变量的名称)

我通常根据将标识符称为变量的一般概念工作,如果您想获得技术,请区分“我们创建的用于存储变量的名称是'变量名'和存储在'变量名中'的值是'变量值'。


1
投票

我会说变量是一个已定义的存储区域;事实上你的RAM中有一个地方可以保存你的价值。变量标识符是您为该区域指定的名称。

当然,标识符可以命名多于变量。函数(带有输入/输出参数的代码包)也有一个名称:函数标识符。类型(值域),也有名称,类型标识符。类(具有函数成员的类型),具有类标识符,依此类推。

例如,'4'是一个值。更重要的是,它是一个整数。如果你想管理自己的整数怎么办?您需要一个存储区域来保存整数,一个名称来引用该存储区域,您需要定义要在该区域中保存的值(类型/域),以及要引用和指定该类型的名称。所以,你写的东西如下:

int var;

如果Java解析器看到具有以下结构的句子:name name;,他知道您正在创建存储区域。第一部分指定了区域所针对的值的类型,并且指定它的唯一方法是写入该类型的类型标识符,因为类型本身是一个抽象概念(例如,int用于抽象概念的东西是一个整数)。

第二部分是您要为该区域提供的名称,以便稍后使用,因为使用名称引用存储区域比使用任何其他方法更简单(例如,内存方向或其他任何方式;保留语言为您)。


0
投票

标识符是澄清变量的单词,但变量是ram中用于存储数据的空间。示例:一旦声明了一个变量,例如:int god;,单词int是标识符,int god;是声明为输入整数数据的变量

© www.soinside.com 2019 - 2024. All rights reserved.