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'将返回指针的大小,而不是它指向的内容。 –