色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c語言for循環獲取數組長度的方法

林玟書2年前25瀏覽0評論

c語言for循環獲取數組長度的方法?

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

但是,通過傳遞數組名參數到子函數中,以獲得數組長度是不可行的。

例如:

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語言中,整形數組和字符數組的大小是有區別的,整形數組大小:sizeof(數組名)/sizeof(數組類型)。字符數組大小:strlen(數組名)+1,1因為要加上'/0',所以再加1。