错误:左值必须为一元'&';操作数 //在线C++编译器 int main(){ int a[3]={9,8,7}; std::cout

错误:左值必须为一元'&';操作数 //在线C++编译器 int main(){ int a[3]={9,8,7}; std::cout,c++,C++,您正在尝试检索右值的指针,即计算结果(a+1).arvalue被定义为没有地址的对象,因此它可以在计算期间存储在注册表中的某个位置。这就像说&1,但1当然没有指针。和操作数因此只能用于左值,即存储在某些位置的值内存地址 在您的情况下,a已经对应于指向a[0]的指针,因此要打印指向a[1]的指针,您实际上只需要: std::couta已经可以被视为int*所以您尝试获取int**或者其他?您希望打印什么?第二个很好。第一个不是(a+1是一个临时值,它没有地址)。请注意,a+1==&a[1],这可能

您正在尝试检索右值的指针,即计算结果(a+1).arvalue被定义为没有地址的对象,因此它可以在计算期间存储在注册表中的某个位置。这就像说
&1
,但1当然没有指针。
操作数因此只能用于左值,即存储在某些位置的值内存地址

在您的情况下,
a
已经对应于指向
a[0]
的指针,因此要打印指向
a[1]
的指针,您实际上只需要:


std::cout
a
已经可以被视为int*所以您尝试获取int**或者其他?您希望打印什么?第二个很好。第一个不是(
a+1
是一个临时值,它没有地址)。请注意,
a+1==&a[1]
,这可能是您尝试执行的操作?
// Online C++ compiler

int main() {
    int a[3]={9,8,7} ;
    std::cout << &(a+1) <<"___" <<&(a[1]);

    return 0;
}