當(dāng)數(shù)組作為形參傳入到函數(shù)中時(shí),數(shù)組已經(jīng)被轉(zhuǎn)換成了指針,這時(shí)候?qū)?shù)組長(zhǎng)度取長(zhǎng)度是無(wú)效的;
例如:int fun(int array[]){
int size = sizeof(array)/sizeof(array[0]);//無(wú)效
return 0;
}
最簡(jiǎn)單的一個(gè)辦法,就是傳入第二個(gè)參數(shù)值數(shù)組長(zhǎng)度,int fun(int array[],int length);
也可以使用C++的模板、或者
例如:int fun(int array[]){
int *p = array;//array此時(shí)應(yīng)相當(dāng)于一個(gè)字符串,以'\0'結(jié)尾;若array是數(shù)組,不能確定數(shù)組的最后一個(gè)元素的具體值,應(yīng)該不能使用該方法
int length = 0;
while(p != '\0'){
length++;
p++;
}
return 0;
}
|
|
來(lái)自: tom and jerry > 《C語(yǔ)言》