如何使用 sizeof(a)/sizeof(a[n])

How to use sizeof(a)/sizeof(a[n])

To avoid things quietly breaking if you change the array size, I suggest std::copy(a, a + sizeof(a)/sizeof(a[0]), b);. Even better, wrap the sizeof() junk in a macro -- or even betterer, use a function template instead: template <typename T, size_t N> size_t size((T&)[N]) { return N; } – j_random_hacker Sep 8 '12 at 7:29

今天早上我在查看问答时发现了这条评论(有 4 票赞成)。我对 C++ 很陌生。 a+sizeof(a[0]) 在这里是什么意思,我认为 sizeof(a[0]) 将 return 4 代表一个 int 内存字节?非常感谢!!

这很简单:

sizeof(a)/sizeof(a[0])

无论您选择哪个元素(ie n0

如果 a 是数组,则 sizeof(a)/sizeof(a[0])a 中元素的数量。它是每个元素大小的整个数组的大小。

所以如果 a 是一个数组,那么 a + sizeof(a)/sizeof(a[0]) 是一个指向数组末尾之后的指针。