通过一些 C 面试问题,我发现了一个问题: “如何在不使用 sizeof 操作符的情况下在 C 中找到数组的大小?”以下解决方案。它起作用了,但我不明白为什么。
#include <stdio.h>
int main() {
int a[] = {100, 200, 300, 400, 500};
int size = 0;
size = *(&a + 1) - a;
printf("%d\n", size);
return 0;
}
正如预期的那样,它返回5。
人们指出 这个的答案,但语法确实有一点不同,即索引方法
size = (&arr)[1] - arr;
所以我相信这两个问题都是有效的,并且对这个问题有一个稍微不同的方法。谢谢大家的大力帮助和详尽的解释!