我看了这个答案如何通过使用指向数组的指针来获取数组的大小?
Adressing你的问题 - 指针数组是有用的通过编译时已知大小的 整个阵列和保存信息过程中的参数传递约 它的大小。
但我并不真正了解它。在编译时已经知道给定大小的数组的大小不是?如果你有一个指向它的指针,你如何得到数组的大小?举这个例子:
void func(int (*array)[5])
{
}
// identical to
void func(int *array, int size)
{
}
你必须把5放在那里,那么它有什么意义呢?除非您已经知道大小,否则您仍然无法遍历它。
*“如果你有一个指向它的指针,你如何得到数组的大小?”*你不知道。如果你有一个指向数组的指针,但不知道你是SOL的大小。这就是为什么你避免使用原始数组,并使用'std :: vector'或'std :: array',因为他们随身带着这些信息 – CoryKramer 2014-12-05 14:32:35
如果你看起来很奇怪,数组就会衰变成指针。 – Borgleader 2014-12-05 14:32:43
您不必将尺寸[5]放在那里,[]就足够了。而“5”只是阅读代码的人的文档。 – gnasher729 2014-12-05 14:33:29