普通数组与指针数组

时间:2014-07-11 22:10:30

标签: c++ arrays pointers

在指针数组上使用普通数组是否有任何优势(反之亦然)?

我何时应该使用指针数组,何时应该避免使用它?

在大学里,每个人似乎都对指针感到疯狂。我知道std :: vector是一个简单的出路,但它禁止在大学里使用。我们现在要求解决没有STL的问题。

我从SO (link)得到了一个答案,但答案在我脑海中浮现。

例如:使用int array[]更好还是int* parray[]更好?

1 个答案:

答案 0 :(得分:1)

int array[]是一个int数组。这意味着它将包含多个整数的集合。想象一下它是一个拥有多个整数的占位符。在C ++中使用int array[]时,必须在使用它之前给它一个固定的大小:

int array[5]

并且大小将放在方括号[]内,否则它不会编译并会给你错误。使用这个普通数组的缺点是你必须先知道数组的大小,否则程序不会运行。如果您的估算大小与实际使用不同,该怎么办?如果您的估算比实际值大得多,该怎么办?这将花费你很多记忆。

int *array[]在C ++中无效。如果要在不运行数组大小的情况下执行指向数组的指针。这样做:

int *p;
int size;

cout << "How big is the size ?";
cin >> size;

p = new int[size];

这样,您不需要在运行时间之前知道size的值,因此您不会浪费内存。