C語言獲得陣列長度的函式
<轉自百度知道>
1、c語言中,定義陣列後可以用sizeof命令獲得陣列的長度(可容納元素個數)。
例如:
int data[4]; int length; length=sizeof(data)/sizeof(data[0]); //陣列佔記憶體總空間,除以單個元素佔記憶體空間大小 printf("length of data[4]=%d", length ); //輸出length of data[4]=4
2、但是,通過傳遞陣列名引數到子函式中,以獲得陣列長度是不可行的。
例如:
int getLength(int[] a){ int length; length=sizeof(a)/sizeof(a[0]); //這樣是錯誤的,得到的結果永遠是1 return length; }
因為,a是函式引數,到了本函式中,a只是一個指標(地址,系統在本函式執行時,是不知道a所表示的地址有多大的資料儲存空間,這裡只是告訴函式:一個資料儲存空間首地址),所以,sizoef(a)的結果是指標變數a佔記憶體的大小,一般在32位機上是4個位元組。a[0]是int型別,sizeof(a[0])也是4個位元組,所以,結果永遠是1。
3、因此,獲得陣列長度,只能在陣列定義所在的程式碼區中,採用以上方法,才可以達到效果。
相關文章
- c語言獲取陣列長度的函式C語言陣列函式
- c語言的strlen函式計算字元陣列長度不對C語言函式字元陣列
- C語言求其字元陣列的長度C語言字元陣列
- C語言如何計算陣列的長度C語言陣列
- C++獲取陣列的長度C++陣列
- 獲取C/C++字串、字元陣列長度C++字串字元陣列
- C語言應用於LR中-如何得到陣列長度C語言陣列
- c語言中計算陣列長度的方法C語言陣列
- c語言的陣列C語言陣列
- C語言函式題-查詢陣列每行的最大值C語言函式陣列
- C++陣列長度C++陣列
- C語言陣列C語言陣列
- C語言中如何求一個陣列的長度C語言陣列
- C語言函式手冊:c語言庫函式大全|C語言標準函式庫|c語言常用函式查詢C語言函式
- C語言(字元陣列)C語言字元陣列
- c語言字元陣列C語言字元陣列
- 獲得檔案的大小(c語言)C語言
- C語言的函式C語言函式
- C語言結構體及函式傳遞陣列引數示例C語言結構體函式陣列
- C語言getgroups()函式:獲取組程式碼函式C語言函式
- [ASM C/C++] C語言陣列ASMC++C語言陣列
- C語言 簡單的佇列(陣列佇列)C語言佇列陣列
- C語言 execve()函式C語言函式
- C語言常用函式C語言函式
- 用 GetLength(int dimension) 獲取陣列指定維度的長度。陣列
- C語言 指標與陣列C語言指標陣列
- c語言陣列、sizeof()及strlen()C語言陣列
- C語言基礎-1、陣列C語言陣列
- 字元陣列的長度字元陣列
- C語言函式sscanf()的用法C語言函式
- C語言qsort函式的使用C語言函式
- javascript如何獲取陣列的長度和遍歷陣列的每一項JavaScript陣列
- C語言 itoa函式及atoi函式C語言函式
- C語言中strlen求字串長度,求字元陣列長度(空字元,數字0,字元0,陣列部分初始化)C語言字串字元陣列
- [ASM C/C++] C語言的main 函式ASMC++C語言AI函式
- 陣列排序函式-php陣列函式(一)陣列排序函式PHP
- C語言函式呼叫棧C語言函式
- 詳解C語言函式C語言函式