1、c語(yǔ)言中,定義數(shù)組后可以用sizeof命令獲得數(shù)組的長(zhǎng)度(即可容納元素個(gè)數(shù))。但是通過(guò)傳遞數(shù)組名參數(shù)到子函數(shù)中,以獲得數(shù)組長(zhǎng)度是不可行的,因?yàn)樵谧雍瘮?shù)當(dāng)中,數(shù)組名會(huì)退化為一個(gè)指針。
10年積累的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有澄城免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
2、例如:
int data[4],length;
length=sizeof(data)/sizeof(data[0]); //數(shù)組占內(nèi)存總空間除以單個(gè)元素占內(nèi)存空間大小,即等于元素個(gè)數(shù)
printf("length of data[4]=%d", length ); //輸出length of data[4]=4
#include stdio.h
int add(int a[5])
{
int i,s=0;
for(i=0;i5;i++)
s+=a[i];
return s;
}
int main()
{
int i,a[5];
for(i=0;i5;i++)
scanf("%d",a[i]);
printf("%d",add(a));
return 0;
}
//運(yùn)行示例:
先獲取數(shù)組長(zhǎng)度,然后用for循環(huán),從數(shù)組中獲取值進(jìn)行累加求和。
#include
#include
int main()
{
int n;
int val;
int * a;
int sun = 0, i;
printf("請(qǐng)輸入數(shù)組的長(zhǎng)度:");
scanf("%d", n);
printf("\n");
a = (int *)malloc(n * sizeof(int));//為數(shù)組a動(dòng)態(tài)分配內(nèi)存
for(i = 0; i n; i++)
{
printf("請(qǐng)輸入數(shù)組的第%d個(gè)元素的值:", i+1);
scanf("%d", val);
printf("\n");
a[i] = val;
}
for (i = 0; i n; i++)
{
sun+=a[i];//sun+=a[i]相當(dāng)于sun=sun+a[i];
}
printf("sun = %d\n",sun);
free(a);//釋放a動(dòng)態(tài)分配的內(nèi)存
return 0;
}
擴(kuò)展資料:
一個(gè)數(shù)組中的所有元素具有相同的數(shù)據(jù)類型(在C、C++、Java、pascal中都這樣。但也并非所有涉及數(shù)組的地方都這樣,比如在Visual Foxpro中的數(shù)組就并沒(méi)這樣的要求)。當(dāng)然,當(dāng)數(shù)據(jù)類型為 Variant 時(shí),各個(gè)元素能夠包含不同種類的數(shù)據(jù)(對(duì)象、字符串、數(shù)值等等)??梢月暶魅魏位緮?shù)據(jù)類型的數(shù)組,包括用戶自定義類型和對(duì)象變量。
如果要用戶輸入的是一個(gè)數(shù)組,一般是用一個(gè)循環(huán),但是在輸入前也需要固定數(shù)組的大小。
compact跟變長(zhǎng)數(shù)組沒(méi)有太大的關(guān)系,也應(yīng)該用不到變長(zhǎng)數(shù)組。因?yàn)橐话愕膫鲾?shù)組到函數(shù)中就是傳數(shù)組的地址和元素的個(gè)數(shù)的,那只是一個(gè)提示,不是要求。
參考資料來(lái)源:百度百科-數(shù)組