Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 尝试打印[1]的地址时出错:左值必须为一元'&';操作数弹出_C++_C++14 - Fatal编程技术网

C++ 尝试打印[1]的地址时出错:左值必须为一元'&';操作数弹出

C++ 尝试打印[1]的地址时出错:左值必须为一元'&';操作数弹出,c++,c++14,C++,C++14,我正在尝试打印a[1]元素的地址。我知道这可以通过以下方式实现: cout对于任何数组或指针a和索引i,表达式a[i]完全等于*(a+i)。由此我们可以得出结论,a+i是一个指针,它等于&a[i] 因此,当你尝试执行&(a+1)时,它实际上等于&&a[1],这毫无意义,并且会给你一个错误。非正式地说,数组+1不作为变量存在(例如,你不能将它设置为另一个值),因此你不能获取它的地址。更正式地说,需要左值;i、 可以设置为一个值的东西 因此&(array+1)会发出一个编译错误:在您的例子中,有一些

我正在尝试打印a[1]元素的地址。我知道这可以通过以下方式实现:


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


因此,当你尝试执行
&(a+1)
时,它实际上等于
&&a[1]
,这毫无意义,并且会给你一个错误。

非正式地说,
数组+1
不作为变量存在(例如,你不能将它设置为另一个值),因此你不能获取它的地址。更正式地说,需要左值;i、 可以设置为一个值的东西

因此
&(array+1)
会发出一个编译错误:在您的例子中,有一些有用的提示


在指针算法中,您是否只想将
array+1
用作
array
之外的地址?在对
array+1
的评估中,
array
衰减为
int*
类型。

可能只是
a+1
?遵循“我知道…”的假设已经错了。指向
array+1
的东西没有地址。
#include <iostream>
using namespace std;

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