为了账号安全,请及时绑定邮箱和手机立即绑定

如何找到数组的长度?

如何找到数组的长度?

C++
慕侠2389804 2019-06-15 17:34:51
如何找到数组的长度?是否有一种方法可以找到一个数组有多少个值?检测我是否已经到达数组的末尾也是可行的。
查看完整描述

3 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

正如其他人所说的,您可以使用sizeof(arr)/sizeof(*arr)但是对于不是数组的指针类型,这会给出错误的答案。

template<class T, size_t N>constexpr size_t size(T (&)[N]) { return N; }

这具有一个很好的属性,即无法为非数组类型编译(visual studio有_countof是这样的)。这个constexpr使它成为编译时表达式,因此它在宏上没有任何缺点(至少我不知道)。

您也可以考虑使用std::array在C+11中公开它的长度,而不需要在本地C数组上使用任何开销。

C+17std::size()<iterator>标头,它做同样的工作,也适用于STL容器(感谢@Jon C).


查看完整回答
反对 回复 2019-06-15
?
湖上湖

TA贡献2003条经验 获得超2个赞

sizeof( myArray )将为该数组分配的字节总数。然后,可以通过除以数组中一个元素的大小来找出数组中的元素数:sizeof( myArray[0] )


查看完整回答
反对 回复 2019-06-15
  • 3 回答
  • 0 关注
  • 579 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信