## 方法1 ``` int len = sizeof(arr) / sizeof(arr[0]);//数组总字节除以单个成员的字节。这里处的是第一个数据的字节 ``` 当运行 ``` #include 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首个元素大小 Loading... ## 方法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首个元素大小 Last modification:September 29, 2022 © Allow specification reprint Like 如果觉得我的文章对你有用,请随意赞赏