求数组的长度——函数调用咋不行哈【小弟我太菜了描述不好<相信你们应该能理解】
求数组的长度——函数调用咋不行哈【我太菜了描述不好<相信你们应该能理解】
------解决思路----------------------
把数组地址传给函数在函数里面是无法计算出数组大小的,因为函数的形参不管定义成数组或者指针,其本质都是指针,所以在函数里面用sizeof计算出来的是指针的大小,而不是数组的大小。
#include<stdio.h>
int L(int *t);
int main(void)
{
int l,len;
int a[]={1,2,3,4,5,9};
len=sizeof(a);//sizeof(a[0]);
l=L(a);
printf("%d\n%d\n",l,len);
return 0;
}
int L(int *t)
{
return sizeof(*t);//sizeof(t[0]));
}
------解决思路----------------------
把数组地址传给函数在函数里面是无法计算出数组大小的,因为函数的形参不管定义成数组或者指针,其本质都是指针,所以在函数里面用sizeof计算出来的是指针的大小,而不是数组的大小。