C++ 为什么是c++;代码没有返回数组中每个字符的地址吗?
我正在尝试获取数组中每个字符的地址,如下所示:C++ 为什么是c++;代码没有返回数组中每个字符的地址吗?,c++,C++,我正在尝试获取数组中每个字符的地址,如下所示: #include <bits/stdc++.h> using namespace std; int main() { char arr[] = {'a', 'b', 'c'}; cout<<&arr[0]<<endl; cout<<&arr[1]<<endl; cout<<&arr[2]<<endl;
#include <bits/stdc++.h>
using namespace std;
int main() {
char arr[] = {'a', 'b', 'c'};
cout<<&arr[0]<<endl;
cout<<&arr[1]<<endl;
cout<<&arr[2]<<endl;
return 0;
}
abc0╒@
bc0╒@
c0╒@
Press any key to continue . . .
输出看起来不像十六进制数字的地址,只是一些随机字符。我是否遗漏了一些概念?我想获取数组arr中每个字符的地址。类型
&arr[I]
是字符*
cout
为实例的类具有重载的如果要打印出地址,可以首先将它们(从char*
)强制转换为void*
cout<<static_cast<void*>(&arr[0])<<endl;
cout<<static_cast<void*>(&arr[1])<<endl;
cout<<static_cast<void*>(&arr[2])<<endl;
cout@Peter:是的,你说得对。谢谢你,我已经去掉了马虎的毛病。(请不要因为答案不准确而随意否决——这不是针对个人的。)
cout<<static_cast<void*>(&arr[0])<<endl;
cout<<static_cast<void*>(&arr[1])<<endl;
cout<<static_cast<void*>(&arr[2])<<endl;