变量的定义是什么

Iro*_*e1_ 5 c language-lawyer

在测试中我被问到了这个问题

给出变量的定义

我回答了:

内存中的命名位置.

老师将我的答案标记为错误,并说我需要补充说变量可以改变.

我不认为这里的老师是正确的,因为"常数"是一个无法改变的变量的例子,而这个问题只是要求该术语的一般定义.

什么是真正的定义?

Eri*_*hil 2

这个问题被标记为 C,但 C 标准没有定义 \xe2\x80\x9c 变量。\xe2\x80\x9d 在所问的意义上,2018 年标准主要在非规范性注释、示例和脚注中使用该词。在规范文本中使用它的少数地方是后来添加的补充语言功能(例如线程和原子对象),我不认为它们在那里的使用是有关含义的可靠信息。

\n\n

在标准中,通常认为的变量实际上是通过 \xe2\x80\x9cobjects\xe2\x80\x9d (存储区域)和 \xe2\x80\x9cidentifiers\xe2\x80\x9d (名称)来描述的。就这一点而言,你的答案是正确的。

\n\n

但是,我们不知道您班级的背景。它可能包括对术语 \xe2\x80\x9cvariable、\xe2\x80\x9d 的讨论,并且该讨论可能已将其定义为您的老师测试所需的。

\n\n

从历史上看,变量代表的是其值可以改变的事物,它们因此而得名。后来编程语言发展为具有常量对象,导致历史名称和当前使用之间产生了一些冲突。我希望这就是 C 标准从 \xe2\x80\x9cvariable\xe2\x80\x9d 转向 \xe2\x80\x9cobject\xe2\x80\x9d 和 \xe2\x80\x9cidentifier 的部分原因。\xe2\ x80\x9d 坚持仅在其历史意义中使用该术语是过于严格的,除非它是课程中提出的明确定义。

\n