溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言獲取數(shù)組長度的方法

發(fā)布時間:2020-07-03 16:20:46 來源:億速云 閱讀:635 作者:元一 欄目:編程語言

這篇文章運用簡單易懂的例子給大家介紹C語言獲取數(shù)組長度的方法,代碼非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

所謂數(shù)組,是有序的元素序列。數(shù)組是在程序設計中,為了處理方便, 把具有相同類型的若干元素按無序的形式組織起來的一種形式。這些無序排列的同類數(shù)據(jù)元素的集合稱為數(shù)組。

在程序中合理地使用數(shù)組,會使程序的結(jié)構(gòu)比較整齊,而且可以把較為復雜的運算,轉(zhuǎn)化成簡單的數(shù)組來表示。

一、使用規(guī)則:

1、可以只給部分元素賦初值。當{ }中值的個數(shù)少于元素個數(shù)時,只給前面部分元素賦值。

2、只能給元素逐個賦值,不能給數(shù)組整體賦值。

(請注意:在C、C#語言中是這樣,但并非在所有涉及數(shù)組的地方都這樣,數(shù)據(jù)庫是從1開始。)

3、若不給可初始化的數(shù)組賦初值,則全部元素均為0值。

4、假如給全部元素賦值,則在數(shù)組說明中, 可以不給出數(shù)組元素的個數(shù)。

動態(tài)賦值可以在程序執(zhí)行過程中,對數(shù)組作動態(tài)賦值。這時可用循環(huán)語句配合scanf函數(shù)逐個對數(shù)組元素賦值。

二、表示方法:

數(shù)組元素是組成數(shù)組的基本單元。

數(shù)組元素也是一種變量, 其標識方法為數(shù)組名后跟一個下標。下標表示了元素在數(shù)組中的順序號。數(shù)組元素的一般形式為:數(shù)組名[下標] 其中的下標只能為整型常量或整型表達式。

如為小數(shù)時,C編譯將自動取整。例如,a[5],a[i+j],a[i++]都是合法的數(shù)組元素。數(shù)組元素通常也稱為下標變量。必須先定義數(shù)組, 才能使用下標變量。在C語言中只能逐個地使用下標變量, 而不能一次引用整個數(shù)組。

c語言中,定義數(shù)組后可以用sizeof命令獲得數(shù)組的長度(可容納元素個數(shù))

如:

{
int data[4];
int length;
length=sizeof(data)/sizeof(data[0]);  //數(shù)組占內(nèi)存總空間,除以單個元素占內(nèi)存空間大小
printf("length of data[4]=%d", length ); //輸出length of data[4]=4
}

通過傳遞數(shù)組名參數(shù)到子函數(shù)中,以獲得數(shù)組長度是不可行的。如:

int getLength(int[] a){
    int length;
    length=sizeof(a)/sizeof(a[0]); //這樣是錯誤的,得到的結(jié)果永遠是1
    return length;
}

因為,a是函數(shù)參數(shù),到了本函數(shù)中,a只是一個指針(地址,系統(tǒng)在本函數(shù)運行時,是不知道a所表示的地址有多大的數(shù)據(jù)存儲空間,
這里只是告訴函數(shù):一個數(shù)據(jù)存儲空間首地址),所以,sizoef(a)的結(jié)果是指針變量a占內(nèi)存的大小,一般在32位機上是4個字節(jié)。
a[0]是int類型,sizeof(a[0])也是4個字節(jié),所以,結(jié)果永遠是1。

因此,獲得數(shù)組長度,只能在數(shù)組定義所在的代碼區(qū)中,采用以上方法,才可以達到效果。

關(guān)于C語言獲取數(shù)組長度的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI