c語言int型陣列長度求法及測試

2021-06-18 21:17:29 字數 1747 閱讀 3540

輸入一串數字,定義為整型陣列,要如何求陣列長度呢?

解決方案sizeof(s)/sizeof(int) s是定義的陣列,即用陣列所佔的記憶體大小除以整型占得記憶體,就會得到陣列的長度。

測試程式如下(環境:ubuntu 2013):

#include

#include

#include

intmain() ;

intlen=sizeof(s)/sizeof(int);

printf(

"%d\n"

,len);

return0; }

測試結果:

10 可以求出陣列的正確長度。

由此引申到另乙個問題,是不是其他一些常用的,需要求長度的型別都可以用這種方法來求陣列的長度呢?於是在同樣的環境中測試了以下幾種變數型別的值。

char:當然這個陣列結束標誌很明顯』\0』,用這種方法求出的長度是加上最後的結束符「\0」的。

#include

#include

#include

intmain()

;//包含結束符

\0,每個單引號中只有乙個字元

intlen=sizeof(c)/sizeof(char);

printf(

"%d\n"

,len);

return0; }

測試結果:

11陣列長度加上

\0的長度,即陣列長

+1。當然字元陣列有明顯的結束標誌,可以用判斷元素是否為

\0的方法求長度。另:根據陣列的定義形式不同,上文

char c

一句還可以換成:

charc=;

這樣可以不寫出最後的

\0,但是它還是存在的,故求得的長度也是11。

double:與int型類似,測試程式如下:

#include

#include

#include

intmain() ;

intlen=sizeof(d)/sizeof(double);

printf(

"%d\n"

,len);

return0; }

測試結果:

10是陣列的數字個數。

float

型與double

類似。

C語言獲取陣列長度

1 c語言中,定義陣列後可以用sizeof命令獲得陣列的長度 可容納元素個數 例如 double a int length length sizeof a sizeof a 0 陣列佔記憶體總空間,除以單個元素佔記憶體空間大小 printf length of a d length 輸出length...

c語言求陣列長度

c語言對於不同的資料型別的陣列求長度方式稍微有不同的地方 第一種使用strlen strlen 本質上是求位元組的個數,所以當有中文字元 占用位元組一般不為1 時,會產生差錯,而英文本元都是占用乙個直接,求位元組相當於求字元 include include intmain 輸出 第二種使用sizeo...

C語言裡獲取陣列長度

c語言無法直接獲取陣列長度,但可以用sizeof 關鍵字獲取陣列實際可存放元素個數 不是陣列存放了多少元素 c語言裡,通過傳遞陣列名引數到子函式中,以獲得陣列長度是不可行的 先說1 用 sizeof 可以獲得資料型別或變數在記憶體中所佔的位元組數。同樣,用 sizeof 也可以獲得整個陣列在記憶體中...