3

我正在做以下谜题。也许有人可以检查我是否选择了正确的答案。看一看。

以下哪一项是关于左值的正确陈述?

1 左值是涉及 long int 类型数量的算术运算的结果。

2 所有左值都可以用在赋值语句的右侧。

3 根据定义,左值是出现在赋值语句最右侧的值。

4 根据定义,左值是指针间接引用的存储空间。

5 左值是能够出现在移位运算符左侧的任何数量。

好的,左值是对内存中对象的引用。因此,乍一看,我想到了第 4 个答案,但现在看来不是正确的答案,因为 lvalue 不是存储本身(答案 4 暗示了这一点)。# 我认为答案 2 是正确的,因为左值可以用在赋值运算符的左侧和右侧。你怎么看?

4

1 回答 1

4

我在想答案 2 是正确的,因为左值可以在赋值运算符的左侧和右侧使用

是的,这是真的,正是出于这个原因。

其他陈述的问题:

1) 左值是涉及 long int 类型数量的算术运算的结果。

不,存在long int与否与左值没有任何关系。(long int)42是 type long int,但它不是左值。

3) 根据定义,左值是出现在赋值语句最右侧的值。

不,我不知道它是否有任何特殊名称,但这肯定不是左值的定义。

4)根据定义,左值是指针间接引用的存储空间。

不,你不需要任何指针。如int i = 1337;,i是一个左值。但是,代码中没有任何指针。

5) 左值是能够出现在移位运算符左侧的任何数量。

不。乍一看,左值更多地与以某种方式修改的能力有关(赋值给变量或数组成员),所以如果不是shift operatorread ,这个语句会更接近 true assignment operator。但是,并非所有左值都可以修改(例如,常量是左值,但在初始化后无法修改)。

于 2013-02-01T18:33:52.620 回答