【发布时间】:2019-04-12 16:52:43
【问题描述】:
我正在练习指针数组。 我写了一个简单的代码。
#include<iostream>
using namespace std;
int main(){
int a[3]={1,2,3};
int *b[3];
for(int i=0; i<3; i++){
b[i] = &a[i];
}
cout<<b; //This gives a confusing output
cout<<endl;
for(int i=0; i<3; i++){
cout<<b[i];
cout<<endl;
}
}
和输出是
0x6ffe10
0x6ffe30
0x6ffe34
0x6ffe38
现在我不明白 b 指向哪里。 我知道这听起来很奇怪,但我想知道。 b 指针指向的地方。 b[0], b[1], b[2] 给出了预期的结果。
【问题讨论】:
-
你期望
b是什么? -
这只是一个实验。我在互联网上搜索了一些关于它的东西。但徒劳无功。所以我把它贴在这里。
-
那么
cout<<b的结果是什么,为什么您认为它令人困惑? -
我想知道内存中的 b 指向什么。我的意思是地址 b 里面是什么。
-
b不是指针,它是一个数组。在您最喜欢的 C++ 书籍中阅读有关数组衰减为指向其第一个元素的指针的内容。
标签: c++ arrays pointers output cout