C++ 数组大小


获取数组的大小

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

示例

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

结果:

20
亲自试一试 »

为什么结果显示20代替 5,当数组包含 5 个元素时?

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

你从数据类型章节那一个inttype 通常是 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";
}
亲自试一试 »

了解循环数组的不同方法是很有好处的,因为您可能会在不同的程序中遇到它们。