C++ 数组大小

获取数组的大小

要获取数组的大小,您可以使用 sizeof() 运算符:

实例

int myNumbers[5] = {10, 20, 30, 40, 50};
cout << sizeof(myNumbers);

结果:

20

亲自试一试

为什么当数组包含 5 个元素时,结果显示为 20 而不是 5

这是因为 sizeof() 运算符返回的是类型的字节大小。

数据类型章节中您了解到,int 类型通常是 4 个字节,所以在上面的示例中,4 x 5(4 个字节 x 5 个元素)= 20 个字节

要找出数组包含多少个元素,您必须将数组的大小除以它所包含的数据类型的大小:

实例

int myNumbers[5] = {10, 20, 30, 40, 50};
int getArrayLength = sizeof(myNumbers) / sizeof(int);
cout << getArrayLength;

结果:

5

亲自试一试

使用 sizeof() 遍历数组

数组和循环章节中,我们在循环条件中写了数组的大小(i < 5)。这并不理想,因为它只适用于指定大小的数组。

然而,通过使用上例中的 sizeof() 方法,我们现在可以创建适用于任何大小的数组的循环,这更具可持续性。

而不是这样写:

int myNumbers[5] = {10, 20, 30, 40, 50};
for (int i = 0; i < 5; i++) {
  cout << myNumbers[i] << "\n";
}

最好这样写:

实例

int myNumbers[5] = {10, 20, 30, 40, 50};
for (int i = 0; i < sizeof(myNumbers) / sizeof(int); i++) {
  cout << myNumbers[i] << "\n";
}

亲自试一试

请注意,在 C++11(2011 年)版本中,您还可以使用 "for-each" 循环

实例

int myNumbers[5] = {10, 20, 30, 40, 50};
for (int i : myNumbers) {
  cout << i << "\n";
}

亲自试一试

提示:了解遍历数组的不同方式是有好处的,因为您可能会在不同的程序中遇到它们。