C語言計算陣列長度時注意事項

2021-10-05 03:22:12 字數 1181 閱讀 6310

c語言如何計算陣列的長度

原創 i.czy 最後發布於2018-05-04 17:17:46 閱讀數 92980 已收藏

展開(1)借助sizeof()函式 :

#include

int main()

;int length = 0;

// 計算陣列中資料長度 :

// 所有資料的位元組數除以乙個資料的位元組數即為資料的個數 :

length = sizeof(arr) / sizeof(int);

printf("陣列的長度為: %d\n",length);

return 0;

}執行結果 :

(2)上面的方法會出現乙個誤區

那就是當陣列作為實參傳遞到另乙個函式時, 而這個函式執行了上面同樣的方法, 結果出來的不會正確的陣列的長度 :

測試** :

#include

void test(int arr)

int main()

;int length = 0;

// 計算陣列中資料長度 :

// 所有資料的位元組數除以乙個資料的位元組數即為資料的個數 :

length = sizeof(arr) / sizeof(int);

printf("main_陣列的長度為: %d\n",length);

test(arr);

return 0;

}執行結果 :

**分析 :

當將陣列作為實參傳遞到另乙個函式中時, 另乙個函式的形參相當於乙個指標變數, 因為將陣列的名作為實參時, 就是將數字的首位址作為實參, 所以在test函式中輸出的sizeof(arr)其實得到的是乙個整型陣列的長度(所佔的位元組數), 所以結果是8, 再用其除以int所佔的位元組數(4), 結果就是2 .

也是我自己親自遇到的,再寫快速排序的函式時,會發現在函式內計算傳入陣列的長度是只能算出1,算不出真正的長度,所以長度也得通過函式引數的形式傳入。

使用sizeof()計算陣列長度

char words 計算word中元素個數 size t words size sizeof words sizeof char 使用陣列初始化words2 指標初始化 list words2 words,words words size 解析 1 sizeof sizeof操作符返回乙個物件或型...

用sizeof 計算陣列長度

計算陣列長度時可以用 int array sizeof array 12 int length sizeof array sizeof array 0 3 char array abc sizeof array 4 考慮 0 strlen array 3 不考慮 0 int length sizeo...

C語言如何計算陣列的長度

原創i.czy 1 借助sizeof 函式 include int main int length 0 計算陣列中資料長度 所有資料的位元組數除以乙個資料的位元組數即為資料的個數 length sizeof arr sizeof int printf 陣列的長度為 d n length return...