求陣列的長度

2021-07-10 03:00:39 字數 619 閱讀 1992

在計算陣列所有元素之和等等問題時,經常需要知道某乙個陣列的長度,其求解公式如下:

int data = ;

int size = sizeof(data) / sizeof(data[0]);

size就是陣列data的長度。

陣列作為實參和形參時,長度不同的原因:

#include "stdafx.h"

int add(int a, int len)//此處使用*a,效果一樣

return sum;

}int main()

; int size = sizeof(data) / sizeof(data[0]);

printf("%d\n", sizeof(data));//40

printf("結果是:%d\n", add(data, size));

return 0;

}

結論:將函式的引數宣告為陣列和宣告為指標是一樣的。

特別注意:在初始化陣列時,如果不知道陣列的長度,如:double a=;系統在計算sizeof(a)時,會預設它的值為8,sizeof(a[0])=8;從而陣列a的長度將一直是1,不管你在此之前為它賦了多少個值。

求陣列長度

c 求陣列長度為 int arr length sizeof arr sizeof arr 0 為了方便使用,在c語言中常定義巨集來求陣列長度 define arr len array,length 使用時,直接呼叫巨集函式即可,如 int arr int len arr len arr,len 此...

C 求陣列長度

c c 中沒有提供直接獲取陣列長度的函式,對於存放字串的字元陣列提供了乙個strlen函式獲取長度,那麼對於其他型別的陣列如何獲取他們的長度呢?其中一種方法是使用sizeof array sizeof array 0 在c語言中習慣上在 使用時都把它定義成乙個巨集,比如 define get arr...

c語言求陣列長度

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