方法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
如果觉得我的文章对你有用,请随意赞赏