函数中计算数组的长度
需要用到数组指针。
#include <stdio.h>
void print1(int (*p)[10]) {
int length = sizeof(*p) / sizeof((*p)[0]);
printf("%d" , length);
}
int main() {
int arr[10] = { 1 , 2 , 3 , 4 , 5 , 6 , 7 ,8 , 9 , 10 };
print1(&arr);
return 0;
}
注:但是这种方式取决于形参,当形参为int (*p)[5]的时候 ,计算的结果是就是5了,最好的方式还是在函数调用前用sizeof(数组名) / sizeof(数组第一个元素)的方式来计算出数组大小,再通过实参的方式传递进去。