C++ 陣列大小
獲取陣列大小
要獲取陣列的大小,您可以使用 sizeof()
運算子
為什麼結果顯示 20
而不是 5
,儘管陣列包含 5 個元素?
這是因為 sizeof()
運算子返回的是一個型別的大小(以 **位元組** 為單位)。
您從 資料型別章節 中瞭解到,int
型別通常是 4 個位元組,所以在上面的例子中,4 x 5 (4 位元組 x 5 個元素) = 20 位元組。
要找出陣列包含多少個元素,您必須將陣列的大小除以陣列第一個元素的大小
示例
int myNumbers[5] = {10, 20, 30, 40, 50};
int getArrayLength = sizeof(myNumbers) / sizeof(myNumbers[0]);
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(myNumbers[0]); i++) {
cout << myNumbers[i] << "\n";
}
自己動手試一試 »
請注意,在 C++ 11 (2011) 版本中,您還可以使用 “foreach”迴圈,它更簡潔、更簡單。
瞭解不同的陣列迴圈方法很重要,因為您可能會在不同的程式中遇到它們。