sizeof()與 陣列長度獲取

2021-06-05 14:18:45 字數 761 閱讀 4914

獲取陣列長度 

函式通過引數傳入乙個陣列的指標,如何獲取該陣列的長度?如

int find(int* array,int key)

其中array的長度如何獲取?

用過sizeof(array) / sizeof(int),但是結果不對,始終是1

滿意回答

int mylen(int buf)

int main(void)

;int l = mylen(buf);

printf("%d\n", l);

system("pause");

return 0;

}但是這樣寫就是正確的,因為buf的分配過程是在編譯階段定義:

int main(void)

;int l =sizeof(buf) / sizeof(int);

printf("%d\n", l);

system("pause");

return 0;

}您關心的array長度問題,只能從引數解決:

int find(int * array, int len, int key);

或者以協議方式,將首位址的值定為長度:

int find(int * xarray, int key) 

{assert(xarray);//斷言

int ln = xarray(0);  //首變數儲存陣列長度

int * array = xarray + 1; //正式位址從下乙個位址開始

... 

php獲取陣列長度函式sizeof與count用法

count count 函式計算陣列中的單元數目或物件中的屬性個數,對於陣列,返回其元素的個數,對於其他值,返回 1,如果引數是變數而變數沒有定義,則返回 0,如果 mode 被設定為 count recursive 或 1 則會遞迴底計算多維陣列中的陣列的元素個數.sizeof 定義和用法,siz...

php獲取陣列長度函式sizeof與count用法

count count 函式計算陣列中的單元數目或物件中的屬性個數,對於陣列,返回其元素的個數,對於其他值,返回 1,如果引數是變數而變數沒有定義,則返回 0,如果 mode 被設定為 count recursive 或 1 則會遞迴底計算多維陣列中的陣列的元素個數.sizeof 定義和用法,siz...

用sizeof測量陣列長度

今天本想寫乙個進行陣列排序的 但我被乙個bug困住了,事情是這樣的 int a 定義陣列 int n sizeof a 求陣列長度 int i 輸出陣列 printf 陣列 for i 0 i printf 10i a i 陣列 1549 93998 724199344 2981888 635684...