c++中名称和变量的区别是什么?



根据c++ ISO Draft (2020) 6.1 (Basics):

name使用标识符(5.10),operator-function-id(12.6),literal-operator-id(12.6.8),convert -function-id(11.4.7.2),或者template-id(13.3),表示实体或标签(8.7.5,8.2)。

表示实体的每个名称都由声明引入。表示标签的每个名称都由goto引入语句(8.7.5)或标记语句(8.2)。

变量是由引用的声明引入的对象的非静态数据成员。变量名(如果有的话);表示引用或对象

name可以表示实体,因此它可以表示对象,在本例中由声明引入。变量可以通过对象的声明引入,在这种情况下表示对象。如果我没有误解的话,名称变量的定义看起来非常相似。名称变量之间的区别是什么?(特别是在有交集的情况下,e。G当它们表示对象时)

名称和变量的区别是什么?

最明显的区别(基于你的第一个引用)是名称比变量更通用。每个变量都有一个名称,但不是每个名称都是变量的名称。还有函数、类、操作符和模板的名称。(这不是一个完整的列表。)

不太明显的是,名称比变量更具体,因为变量的名称只是变量的一个方面。我认为你的困惑来自于这样一个事实,即变量的名称必须与变量本身同时引入(你的第二个和第三个引号),它们同时超出了作用域。两者没有时间上的分离。

(特别是在有交集的情况下,例如当它们表示一个对象时)

我认为这有点哲学意味。让我们举一个类似的例子:你的名字和你自己有什么不同?你不仅仅是一个名字吗?然而,为了识别你,其他人用你的名字。

对于变量来说并没有什么不同。变量有一个名称。该名称用于指代变量,通常被视为变量。然而,变量不仅仅是一个名字;它还具有类型和值。名称本身并不决定类型和值,但为了方便起见,在讨论代码时经常这样使用。(在绝大多数情况下,这并不是一件坏事。)

我想说一个变量有两个东西:一个名称和一个值。
就名称而言:变量可以有名称,但也可以有函数、类、…

所以变量是一个元素,属于c++世界(以及许多其他编程语言)。
名称是许多元素的属性,例如变量,但也包括其他元素。

相关内容

最新更新