新聞中心
C語言,求數(shù)組中元素的個數(shù)
你的數(shù)組a[0]在賦值過程中就是0啊
成都創(chuàng)新互聯(lián)擁有十載成都網(wǎng)站建設(shè)工作經(jīng)驗,為各大企業(yè)提供網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計服務(wù),對于網(wǎng)頁設(shè)計、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、成都app軟件開發(fā)公司、wap網(wǎng)站建設(shè)(手機版網(wǎng)站建設(shè))、程序開發(fā)、網(wǎng)站優(yōu)化(SEO優(yōu)化)、微網(wǎng)站、域名與空間等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了很多網(wǎng)站制作、網(wǎng)站設(shè)計、網(wǎng)絡(luò)營銷經(jīng)驗,集策劃、開發(fā)、設(shè)計、營銷、管理等網(wǎng)站化運作于一體,具備承接各種規(guī)模類型的網(wǎng)站建設(shè)項目的能力。
即a[0]=0;
for(;jMAX;j++)
{
if(a[j]==NULL)//如果數(shù)組為空則返回當(dāng)前數(shù)組的下標,即為數(shù)組元素的個數(shù)
{ //或者這樣寫a[j]=='\0'
m=j;
printf("%d\n",m);
break;
}
}
所以上面程序j=0時,a[0] == NULL是TRUE,所以打印出m為0啊
所以你可以將賦值語句改一下即可
for(i=1;i=10;i++)
{
a[i]=i;//對十個數(shù)組依次賦值
}
c語言表示數(shù)組元素個數(shù)的函數(shù)
沒有這樣的函數(shù)。不過如果是靜態(tài)定義的數(shù)組,可以在定義的函數(shù)中 用
sizeof(a)/sizeof(a[0]) 來表示其個數(shù) 這個是一維的。 如果是二維的 就是
sizeof(a)/sizeof(a[0][0])
如果是動態(tài)分配的,或者是以指針方式傳給了其它函數(shù),就沒辦法通過語句知道大小了,只能你自己記錄。
C語言獲取函數(shù)參數(shù)的數(shù)組的元素個數(shù)
C語言中,定義數(shù)組后可以用sizeof命令獲得數(shù)組的長度(可容納元素個數(shù)),通過數(shù)組占內(nèi)存總空間/單個元素占內(nèi)存空間大小,即可得到數(shù)組的元素個數(shù)
例如
但是,通過將數(shù)組作為函數(shù)參數(shù)傳遞到函數(shù)中,以獲得數(shù)組長度是不可行的
例如
原因:數(shù)組arr是函數(shù)參數(shù),在函數(shù)中,arr只是一個指針(地址,系統(tǒng)在本函數(shù)運行時,是不知道arr所表示的地址有多大的數(shù)據(jù)存儲空間,這里只是告訴函數(shù):一個數(shù)據(jù)存儲空間首地址),所以,sizoef(arr)的結(jié)果是指針變量arr占內(nèi)存的大小,一般在32位機上是4個字節(jié)。arr[0]是int類型,sizeof(arr[0])也是4個字節(jié),所以,結(jié)果永遠是1。
如果想要在被調(diào)用的函數(shù)中,得知原數(shù)組的大小,可以再給函數(shù)添加一個參數(shù),用于指定數(shù)組的大小,讓外界調(diào)用函數(shù)前就講數(shù)組的大小傳遞進來
C語言如何檢查一個數(shù)組中元素的個數(shù)
對于字符數(shù)組str[N],判斷方法有以下三種:
第一種:用庫函數(shù)strlen
len = strlen(str); // 數(shù)組長度
第二種:利用計數(shù)器
int i=0;
while(str[i++] != '\0'); // 數(shù)組str的長度為i
第三種:利用sizeof函數(shù)
len = sizeof(str)/sizeof(str[0]); // 數(shù)組長度對于其他類型的數(shù)組,都可以用字符數(shù)組的第三種方法,第三種方法是通用的。
分享文章:數(shù)組中元素個數(shù)c語言函數(shù) c語言怎么定義n個元素的數(shù)組
URL分享:http://www.dlmjj.cn/article/dooiess.html