如何使用 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 n
或 0
)
如果 a
是数组,则 sizeof(a)/sizeof(a[0])
是 a
中元素的数量。它是每个元素大小的整个数组的大小。
所以如果 a
是一个数组,那么 a + sizeof(a)/sizeof(a[0])
是一个指向数组末尾之后的指针。
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 thesizeof()
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 n
或 0
)
如果 a
是数组,则 sizeof(a)/sizeof(a[0])
是 a
中元素的数量。它是每个元素大小的整个数组的大小。
所以如果 a
是一个数组,那么 a + sizeof(a)/sizeof(a[0])
是一个指向数组末尾之后的指针。