如何找到数组的长度?

如何找到数组的长度?

是否有一种方法可以找到一个数组有多少个值?检测我是否已经到达数组的末尾也是可行的。



慕侠2389804
浏览 583回答 3
3回答

九州编程

正如其他人所说的,您可以使用sizeof(arr)/sizeof(*arr)但是对于不是数组的指针类型,这会给出错误的答案。template<class&nbsp;T,&nbsp;size_t&nbsp;N>constexpr&nbsp;size_t&nbsp;size(T&nbsp;(&)[N])&nbsp;{&nbsp;return&nbsp;N;&nbsp;}这具有一个很好的属性,即无法为非数组类型编译(visual studio有_countof是这样的)。这个constexpr使它成为编译时表达式,因此它在宏上没有任何缺点(至少我不知道)。您也可以考虑使用std::array在C+11中公开它的长度,而不需要在本地C数组上使用任何开销。C+17有std::size()在<iterator>标头,它做同样的工作,也适用于STL容器(感谢@Jon C).

湖上湖

做sizeof( myArray )将为该数组分配的字节总数。然后,可以通过除以数组中一个元素的大小来找出数组中的元素数:sizeof( myArray[0] )
打开App,查看更多内容
随时随地看视频慕课网APP