首页 > 解决方案 > 在尝试打印 [1] 错误的地址时:弹出一元“&”操作数所需的左值

问题描述

我正在尝试打印 a[1] 元素的地址。我知道它可以通过

cout << a[i];

但我只想知道为什么我这样做时会收到错误消息

cout << &(a+1);

#include <iostream>
using namespace std;

int main()
{
    int array[10];
    array[1]=3;
    cout<<"Address : "<<&(array+1);
    return 0;
}

标签: c++c++14

解决方案


对于任何数组或指针a和索引i表达式a[i]完全等于。由此我们可以得出结论是一个等于 的指针。*(a + i)a + i&a[i]

因此,当您尝试这样做时&(a + 1),这真的等于&&a[1]which 没有意义并给您一个错误。


推荐阅读