/*
C/C++ 传递数组,虽然传递的是首地址地址,但是参数到了函数内
就成了普通指针,不再是数组首地址了,所以试图在别的函数中得到
传递数组的长度是行不通的。
只能先计算好长度后再传过去,进行其他的运算。
*/
void getArrLen(int a[]) // void getArrLen(int *a) 没区别,a都是个普通指针,不能自动识别之前是数组首地址
{
int len = sizeof(a) / sizeof(a[0]);
printf("%d\n", len); // len = 1
for (size_t i = 0; i < 5; i++)
printf("%d\n", a[i]); //打印出来还是12345
}
int main()
{
int a[] = { 1,2,3,4,5,};
getArrLen(a);
{
int a[] = { 1,2,3,4,5,};
getArrLen(a);
}