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

时间:2015-12-27 00:53:09

标签: c++ size

  

为了避免在更改数组大小时悄然破坏,我建议std::copy(a, a + sizeof(a)/sizeof(a[0]), b);。更好的是,将sizeof()垃圾包裹在一个宏 - 甚至是更好的人中,改为使用函数模板:template <typename T, size_t N> size_t size((T&)[N]) { return N; } - j_random_hacker 12年8月8日在7:29左右

当我今天早上看Q&amp; A时,我发现了这个评论(有4个赞成票)。我是C ++的新手。 a+sizeof(a[0])在这里意味着什么,我认为sizeof(a[0])将返回4代表一个int内存字节?非常感谢提前!!。

2 个答案:

答案 0 :(得分:3)

这很简单:

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

与您选择的元素无关( n0

答案 1 :(得分:0)

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

因此,如果a是一个数组,则a + sizeof(a)/sizeof(a[0])是指向数组末尾的指针。