c++ - 在尝试打印 [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;
}
解决方案
对于任何数组或指针a
和索引,i
表达式a[i]
完全等于。由此我们可以得出结论是一个等于 的指针。*(a + i)
a + i
&a[i]
因此,当您尝试这样做时&(a + 1)
,这真的等于&&a[1]
which 没有意义并给您一个错误。
推荐阅读
- azure-resource-manager - ARM 模板 - 复杂计算
- opam - 如何使用 ocamlfind 或 opam 获取已安装软件包的版本?
- python - python - 如何在python的json有效负载中使用true或false?
- asp.net - 热门添加在下面的代码中包含 ASP.net 中的下拉列表。我想在我的项目表中包含外部表项目位置
- list - 如何在Scala中打印数字的出现?
- python - 连接熊猫数据框中的所有列
- java - 使用 java 的密钥库格式无效
- spring - 弹簧网络套接字;处理程序没有适配器
- python - 在python中提取字符串的特定部分
- c - 结构指针分段错误,我该如何解决?