int a[] = {1,2,3,4};
printf("%d",sizeof(a)/sizeof(a+1));
Run Code Online (Sandbox Code Playgroud)
输出:4
有谁能解释一下?
Car*_*rum 10
这是不对的. sizeof(a)是数组sizeof(a+1)的大小,是指针的大小.将两者分开是没有意义的.
作者可能想要的是:
sizeof a / sizeof a[0]
这将产生数组中的元素数量. sizeof a[0]是一个大小int.
您的代码为您提供正确答案的原因是因为您的机器碰巧有sizeof(int) == sizeof(int *).
旁白:%zu用于打印size_t.