关于左值到右值的转换
“在一元&运算符的操作数上没有进行左值到右值的转换。”
我可以知道这意味着什么>任何人都可以解释..请
例如:
int a[]={1,5};
int* x=&a;
没有找到相关结果
已邀请:
3 个回复
扫窟
芜任亮蜡
中,您需要
和
的值来确定您不需要知道的结果where - 如果在任何地方 - 原始对象来自)。 在address-of运算符中你需要拥有对象本身(即左值),对象的值是无关紧要的,因此左值转换的左值无益,它将失去对象本身的身份(位置),这是拿一个地址很重要。
矾醒忻
这是一个类型错误。
运算符产生指向其操作数的指针。它的操作数在这里是什么?一个2个整数的数组。指向2个整数数组的指针不是类型
,而是类型
。 请注意您引用的规则如何适用于此:在许多上下文中,数组的名称衰减为指向其第一个元素的指针。 (但一般来说,数组和指针都不一样!)当你说
时会发生这种情况。但是,当您将
运算符应用于数组时,这种衰减不会发生。 (如果转换确实发生了,
会尝试取
的地址,这是无稽之谈。)