int mid_square(int z[],int length){
int i,cnt=3,sum=0;
if (length%2 == 0) { //even length
length = (length+1)/2;
}
else{ //odd length
length = length/2;
}
for (i=length-2; i<=length+1; i++) {
sum+=z[i]*pow(10, cnt);
cnt--;
}
return sum;
}
在這段代碼中,我使用長度作爲函數的局部變量。
但我不想使用可變長度。
我能做些什麼?
在我使用之前,length = sizeof(z)/ 4,但長度始終是相同的值。 (4 ?? 8 ??我不記得了)如何在C中獲取數組[]的長度?
這是因爲當你將一個數組傳遞給一個函數時,它會衰變爲一個指針。在指針上使用'sizeof'將返回指針的大小,而不是它指向的內容。 –