我正在做以下谜题。 Mayby有人可以检查我是否选择了正确的答案。 看看。
以下哪一项是关于左值的真实陈述?
1左值是算术运算的结果,涉及long int类型的数量。
2所有左值都可以在赋值语句的右侧使用。
3根据定义,左值是出现在赋值最右侧的值 声明。
4根据定义,左值是指针间接引用的存储空间。
5左值是能够出现在班次操作员左侧的任何数量。
好的,左值是对内存中对象的引用。因此,乍一看我想到了第四个答案,但现在它似乎不是正确的答案,因为左值不是stoage本身(答案4暗示)。 # 我当时认为答案2是正确的,因为可以在赋值运算符的左侧和右侧使用左值。 你觉得怎么样?
答案 0 :(得分:4)
我当时认为答案2是正确的,因为左值和右手侧可以使用左值。
是的,出于这个原因,这个是真的。
其他陈述的问题:
1)左值是算术运算的结果,涉及long int类型的数量。
没有。 long int
与否(long int)42
与左值没有任何关系。 long int
的类型为int i = 1337;
,但它不是左值。
3)根据定义,左值是出现在赋值语句最右侧的值。
没有。我不知道这是否有任何特殊名称,但这不是lvalue的定义。
4)根据定义,左值是指针间接引用的存储空间。
没有。你不需要任何指针。与i
中一样,shift operator
是左值。但是,代码中没有任何指针。
5)左值是能够出现在换班操作员左侧的任何数量。
没有。乍一看,左值更多地与以某种方式进行修改的能力(赋值给变量或数组成员)有关,所以如果不是assignment operator
读取它,那么这个陈述将更接近真实{{1}}。但是,并非所有左值都可以修改(例如,常量是左值,但在初始化后无法修改)。