您好,登錄后才能下訂單哦!
這篇文章運用簡單易懂的例子給大家介紹C語言獲取數組長度的方法,代碼非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
所謂數組,是有序的元素序列。數組是在程序設計中,為了處理方便, 把具有相同類型的若干元素按無序的形式組織起來的一種形式。這些無序排列的同類數據元素的集合稱為數組。
在程序中合理地使用數組,會使程序的結構比較整齊,而且可以把較為復雜的運算,轉化成簡單的數組來表示。
一、使用規則:
1、可以只給部分元素賦初值。當{ }中值的個數少于元素個數時,只給前面部分元素賦值。
2、只能給元素逐個賦值,不能給數組整體賦值。
(請注意:在C、C#語言中是這樣,但并非在所有涉及數組的地方都這樣,數據庫是從1開始。)
3、若不給可初始化的數組賦初值,則全部元素均為0值。
4、假如給全部元素賦值,則在數組說明中, 可以不給出數組元素的個數。
動態賦值可以在程序執行過程中,對數組作動態賦值。這時可用循環語句配合scanf函數逐個對數組元素賦值。
二、表示方法:
數組元素是組成數組的基本單元。
數組元素也是一種變量, 其標識方法為數組名后跟一個下標。下標表示了元素在數組中的順序號。數組元素的一般形式為:數組名[下標] 其中的下標只能為整型常量或整型表達式。
如為小數時,C編譯將自動取整。例如,a[5],a[i+j],a[i++]都是合法的數組元素。數組元素通常也稱為下標變量。必須先定義數組, 才能使用下標變量。在C語言中只能逐個地使用下標變量, 而不能一次引用整個數組。
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。
因此,獲得數組長度,只能在數組定義所在的代碼區中,采用以上方法,才可以達到效果。
關于C語言獲取數組長度的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。