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) 返回整個數(shù)組的字節(jié)大小,sizeof(array[0]) 返回數(shù)組中一個元素的字節(jié)大小。通過相除可以得到數(shù)組的元素個數(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ù)組長度的操作封裝在 ARRAY_LENGTH 中,使得代碼更具可讀性。
3,傳遞數(shù)組和數(shù)組長度給函數(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 接受一個指向整數(shù)的指針和數(shù)組的大小,然后直接返回數(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ù)用于計算字符串的長度,適用于以 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文章
7632瀏覽量
141791 -
數(shù)組
+關(guān)注
關(guān)注
1文章
420瀏覽量
26558 -
運(yùn)算符
+關(guān)注
關(guān)注
0文章
173瀏覽量
11486
發(fā)布評論請先 登錄
深入理解C語言:C語言循環(huán)控制

全套C語言培訓(xùn)資料—PPT課件
字符串與字符數(shù)組的區(qū)別
數(shù)組名之間可以直接賦值嗎
C語言數(shù)組應(yīng)用計算機(jī)導(dǎo)論A第6講:數(shù)組
C語言指針運(yùn)算符詳解
搭建開源大語言模型服務(wù)的方法
C語言指針詳細(xì)解析
嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-shell腳本編寫之數(shù)組
hex文件如何查看原c語言代碼
飛凌嵌入式ElfBoard ELF 1板卡-shell腳本編寫之數(shù)組
MCUXpresso IDE下在線聯(lián)合調(diào)試雙核MCU工程的三種方法

評論