1,使用 sizeof 運(yùn)算符
#include
int main() { int array[] = {1, 2, 3, 4, 5}; unsignedchar length=sizeof(array)/sizeof(array[0]);
printf("Array length: %d\n", length);
return 0;}
解析:sizeof(array) 返回整個(gè)數(shù)組的字節(jié)大小,sizeof(array[0]) 返回?cái)?shù)組中一個(gè)元素的字節(jié)大小。通過相除可以得到數(shù)組的元素個(gè)數(shù)。
2,使用宏定義
#include
#define ARRAY_LENGTH(arr) (sizeof(arr) / sizeof(arr[0]))
int main() { int array[] = {1, 2, 3, 4, 5}; unsigned char length = ARRAY_LENGTH(array);
printf("Array length: %d\n", length);
return 0;}
解析:這里使用了宏定義,將獲取數(shù)組長(zhǎng)度的操作封裝在 ARRAY_LENGTH 中,使得代碼更具可讀性。
3,傳遞數(shù)組和數(shù)組長(zhǎng)度給函數(shù)
#include
unsigned char getArrayLength(int *arr, size_t size) { return size;}
int main() { int array[] = {1, 2, 3, 4, 5}; unsigned char length = getArrayLength(array, sizeof(array) / sizeof(array[0]));
printf("Arraylength:%d\n",length); return 0;}
解析:函數(shù) getArrayLength 接受一個(gè)指向整數(shù)的指針和數(shù)組的大小,然后直接返回?cái)?shù)組的大小。
4,使用 strlen(適用于字符串?dāng)?shù)組)
#inlude#include
int main() { char strArray[] = "Hello, World!"; unsigned char length = strlen(strArray);
printf("StringArraylength:%d\n",length);
return 0;}
解析:strlen 函數(shù)用于計(jì)算字符串的長(zhǎng)度,適用于以 null 結(jié)尾的字符串?dāng)?shù)組。
5,使用指針
#include
int main() { int array[] = {1, 2, 3, 4, 5}; int *ptr = array; unsigned char length = sizeof(array) / sizeof(*ptr);
printf("Array length: %d\n", length);
return 0;}
解析:將數(shù)組的首地址賦給指針,然后通過指針進(jìn)行操作。這里同樣使用了 sizeof 方法。==========
-
C語言
+關(guān)注
關(guān)注
180文章
7604瀏覽量
136683 -
數(shù)組
+關(guān)注
關(guān)注
1文章
417瀏覽量
25939 -
運(yùn)算符
+關(guān)注
關(guān)注
0文章
172瀏覽量
11079
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論