C 变量的定义,基本/6节

Definition of a C++ variable, section Basic/6

本文关键字:基本 6节 定义 变量      更新时间:2023-10-16

[basic] p6状态:

通过非静态数据成员或对象的参考声明声明引入一个变量。该变量的名称(如果有(表示参考或对象。

int a = 0; // declaration of an object, this introduces the variable x, and an object is created
int{0}; // not a declaration of a variable, this does not introduce a variable, but an object is created

这是否意味着变量是对象或参考(这不是非静态成员(?在整个标准中,它们被称为它们具有对象/参考的属性,但是正式的定义似乎并未说明。让我感到困惑的是,变量名称是指对象或参考,而不是变量本身。

例如,这是[basic.life] P1所说的:

如果变量为默认的initialized,并且[...]

有空初始化。

这暗示了具有与对象和参考相同属性的变量,因为它们可以初始化。

所以我的问题是:

是变量仅仅是一种句法构造,旨在将声明对象和引用引入到一个术语中?变量本身是对象还是参考?

在基本/3中清楚地表明,变量不是"实体"。对象和参考是实体,但不是变量。因此,您可以将变量视为纯粹的句法结构,而不是一流的C 东西。

基本/6告诉我们,变量名表示该变量声明的对象/参考。这应该被读为普通英语:通过变量声明创建的对象/参考具有变量名。相反,变量名称通过变量声明创建的对象/引用。

所以当标准说:

如果变量为默认的initialization和...

,则具有空置初始化

这意味着:

a [由变量声明引入的参考/对象]如果被默认为initialized,并且...