選單
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

C 陣列大小


獲取陣列大小或長度

要獲取陣列的大小,可以使用 sizeof 運算子

示例

int myNumbers[] = {10, 25, 50, 75, 100};
printf("%lu", sizeof(myNumbers)); // 列印 20
自己動手試一試 »

為什麼結果顯示 20 而不是 5,儘管陣列包含 5 個元素?

- 這是因為 sizeof 運算子返回的是型別的大小(以 **位元組** 為單位)。

您從 資料型別章節 中瞭解到,int 型別通常是 4 個位元組,所以從上面的例子中,4 x 5(*4 位元組 x 5 個元素*)= **20 位元組**。

瞭解陣列的記憶體大小對於處理需要良好記憶體管理的大型程式非常有益。

但是,如果您只想知道陣列有多少個元素,可以使用以下公式(用陣列的大小除以陣列第一個元素的大小):

示例

int myNumbers[] = {10, 25, 50, 75, 100};
int length = sizeof(myNumbers) / sizeof(myNumbers[0]);

printf("%d", length);  // 列印 5
自己動手試一試 »

改進迴圈

在上一個章節的 陣列迴圈部分,我們在迴圈條件中寫死了陣列的大小(i < 4)。這並不理想,因為它只適用於指定大小的陣列。

但是,透過使用上面示例中的 sizeof 公式,我們現在可以建立適用於任何大小陣列的迴圈,這樣更具可持續性。

不必編寫

示例

int myNumbers[] = {25, 50, 75, 100};
int i;

for (i = 0; i < 4; i++) {
  printf("%d\n", myNumbers[i]);
}
自己動手試一試 »

最好這樣寫:

示例

int myNumbers[] = {25, 50, 75, 100};
int length = sizeof(myNumbers) / sizeof(myNumbers[0]);
int i;

for (i = 0; i < length; i++) {
  printf("%d\n", myNumbers[i]);
}
自己動手試一試 »


×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援