在遍历数组的时候,只把数组名作为函数的参数传递过去,必然会丢失数组的长度,在计算数组长度的时候造成错误,使遍历不能完成。解决的办法是:在传递数组名的同时,把数组长度也传过去,这样就不会为遍历数组造成麻烦。
void print_arr(int x[],int len){
//x是一个地址,在内存中,地址占用8个字节
// printf("%d\n",sizeof(x));
// int len = sizeof(x)/sizeof(int);
printf("x = %d\n",len);
//遍历,打印
for (int i=0; i<len; i++) {
printf("%d\t",x[i]);
}
}
int main(int argc, const char * argv[])
{
int a[]={2,3,3,5,6,34,56,67};
int len = sizeof(a)/sizeof(int);
printf("len = %d\n",len);
print_arr(a,len);
return 0;
} |
|