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"; }
提示:了解遍历数组的不同方式是有好处的,因为您可能会在不同的程序中遇到它们。