第6.3.2.1节(第 72 页)解释说
- An
lvalue
表示一个对象,即一块内存。 - 在表达式求值期间,对象被转换为它们的值,即不再是对象。值得注意的例外是
=
,&
,.
,++
,--
,的左操作数sizeof
。 - 数组通常转换为指向其第一个元素的常量指针。同样的操作数
&
是一个例外。 - 函数被隐式转换为指向函数的指针。一元的目标除外
&
。
为什么一元&
如此特别?为什么|
从来没有提到一元?
第6.3.2.1节(第 72 页)解释说
lvalue
表示一个对象,即一块内存。 =
, &
, .
, ++
, --
,的左操作数sizeof
。&
是一个例外。 &
。为什么一元&
如此特别?为什么|
从来没有提到一元?
我不知道您的问题出在哪里,但是您给出的大多数断言至少部分错误
一个对象不一定是一块内存,值得注意的例外是用 . 声明的变量register
。对象是具有明确定义的寿命和类型的可识别位置。
这是在奇怪地陈述事情。在表达式求值期间,对象被...求值。对象本身不变
您在这里混合了非常不同类型的运算符。运算符的值如何sizeof
成为左值,我无法理解。您可能的意思是左值转换不适用于它们?这仅仅是因为这些运算符作用于对象(更改对象)或需要对象的属性(而不是可能转换的值)。
这里的sizeof
操作员是另一个。
...它们只是显式转换的。