当数组作为形参传入到函数中时,数组已经被转换成了指针,这时候对数组长度取长度是无效的;
例如:int fun(int array[]){
int size = sizeof(array)/sizeof(array[0]);//无效
return 0;
}
最简单的一个办法,就是传入第二个参数值数组长度,int fun(int array[],int length);
也可以使用C++的模板、或者
例如:int fun(int array[]){
int *p = array;//array此时应相当于一个字符串,以'\0'结尾;若array是数组,不能确定数组的最后一个元素的具体值,应该不能使用该方法
int length = 0;
while(p != '\0'){
length++;
p++;
}
return 0;
}
|
|
来自: tom and jerry > 《C语言》