【发布时间】:2015-11-28 07:20:36
【问题描述】:
我看到可以使用向量创建一个指针数组,但是我不希望这样。下面的示例是一种创建指向 int 数组的指针的方法吗?
#include <iostream>
using namespace std;
int main() {
int* arr[4];
for (int i=0; i<4; ++i) {
cout<<endl<<arr[i];
}
}
这会创建一个指向 int 数组的指针,并显示数组中每个索引的内存地址。现在我有几个问题。在没有向量的情况下创建指向 int 数组的指针是否正确?另外,如果我想在给定示例中的每个内存地址中初始化一个值,它是如何完成的?最后为什么&arr 等于arr?
【问题讨论】:
-
This makes a pointer to int array不,它不会那样做。那是一个由 4 个 int 指针组成的数组,像现在这样访问它们中的任何一个都是未定义的行为,因为它们未初始化。 -
zLeon 注意:您在问题中留下了语法陷阱。 “指向 int 数组的指针”不明确。它可以解释为“(指向 int 数组的指针)”或“指向(int 数组)的指针”。您的声明“指针数组”与您的代码匹配的上下文。但这似乎对许多读者没有帮助。
标签: c++ arrays pointers vector