方法1
int len = sizeof(arr) / sizeof(arr[0]);//数组总字节除以单个成员的字节。这里处的是第一个数据的字节
当运行
#include<stdio.h>
int main()
{
int arr[] = { 1,2,3,6,4,8,9,1,32};
int i = 0;
i = sizeof(arr) / sizeof(arr[0]);//数组总字节(36)除以单个成员的字节(4)
printf("%d", i);//i=9
return 0;
}
正常返回9
一开始我担心因为部分元素数据字节不同导致算错,然而一开始定义数组的时候就已经规定了元素都是int,所以不会算错
方法2
int len = (int) sizeof(arr) / sizeof(*arr);
sizeof(*arr)取的其实也是arr首个元素大小