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