【发布时间】:2021-07-04 16:45:27
【问题描述】:
在我的编程语言课上准备考试。在教科书中看到了这段摘录。
“变量的地址有时称为它的左值,因为当变量的名称出现在赋值的左侧时,地址是必需的。”
我在大学以外的一些年里一直在自己的时间学习 C++,至少价值类别的主题足够复杂,以至于我不得不复习很多次才能理解它我的头,仍然需要打开 cppreference 页面来查看更新的类别。至少这似乎是一个巨大的过度简化。这只是错误的吗?还是我从未遇到过这种使用左值的方法?
编辑: 这本教科书是关于一般编程语言的,而不是专门针对 C 或 C++ 的。对造成的混乱表示歉意。
【问题讨论】:
-
没有。当您有一个指针持有一个在赋值运算符左侧被取消引用的可变地址时,它是一个左值。例如。
int a = 5, *b = &a;"...the address is what is required when the name of a variable appears in the left side of an assignment."措辞指定=左侧的标签必须表示有效的可变地址,无论它是普通变量(即标签)还是指针。 -
一个左值有一个地址,而不是是一个地址
-
教科书是在讨论 C++ 还是一般的编程? “左值”有多种可能的含义(C++ 使用“左值”,而不是“左值”)。
-
@KeithThompson 将帖子编辑得更清楚,感谢您对“l-value”与“lvalue”的澄清!
标签: c++ lvalue value-categories