如果對(duì)全部元素都賦初值,則定義數(shù)組時(shí)對(duì)第一維的大小可以忽略,但第二維的大小不能省。例如:
創(chuàng)新互聯(lián)長期為上千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為紅古企業(yè)提供專業(yè)的網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站,紅古網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
int a[][4]=;
與下面的代碼是等價(jià)的:
int a[3][4]=;
編譯器會(huì)根據(jù)數(shù)據(jù)總個(gè)數(shù)分配空間,每行4列,所以確定該數(shù)組為3行。
#include stdio.h
int func(int a[],int n)
{
int i,cnt;
for(cnt=0,i=0;in;++i)
? if(a[i])
? ? ? cnt++;
return cnt;
}
int main()
{
int a[10]={0,1,2,3,4,5,6,7,8,9};
printf("%d\n",func(a,10));
return 0;
}
實(shí)參是a,它可以作為指針名使用,等同于指向首元a[0]的指針。形參int a[]等價(jià)于int *a,它指向?qū)崊數(shù)組的首元a[0]的地址。
一維數(shù)組的元素作為函數(shù)實(shí)參,與同類型的簡單變量作為實(shí)參一樣,是單向的值傳遞,即數(shù)組元素的值傳給形參,從而形參是改變不影響實(shí)參
數(shù)組名代表著整個(gè)數(shù)組的地址,如果一維數(shù)組的名字作為函數(shù)實(shí)參,傳遞的是整個(gè)數(shù)組,即形參數(shù)組和實(shí)參數(shù)組完全相同,是存放在同一存儲(chǔ)空間的同一個(gè)數(shù)組。這樣形參數(shù)組
修改時(shí),實(shí)參數(shù)組也同時(shí)被修改了。形參數(shù)組的元素個(gè)數(shù)可以省略。
#includestdio.h
//數(shù)組作為函數(shù)參數(shù),可以省略元素個(gè)數(shù)
//數(shù)組作為函數(shù)參數(shù),傳遞是整個(gè)數(shù)組的地址,修改了函數(shù)形參數(shù)組元素的值,會(huì)影響到外面的實(shí)參數(shù)組
void change(int array[])
{
printf("array ==%p\n",array);
array[0] = 100;
}
int main()
{
int ages[6] = {10,11,13,15,11,18};
printf("array ==%p\n",ages);
change(ages);
printf("%d\n",ages[0]);
return 0;
}
輸出結(jié)果為: array ==0x7fff5be26c00
array ==0x7fff5be26c00
100