首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何找到int[]的大小?

如何找到int[]的大小?
EN

Stack Overflow用户
提问于 2010-01-10 17:04:55
回答 13查看 200.7K关注 0票数 47

我有过

代码语言:javascript
复制
int list[] = {1, 2, 3};

如何获得list的大小

我知道,对于char数组,我们可以使用strlen(array)来查找大小,或者在数组末尾使用'\0'进行检查。

正如一些答案所说的,我尝试了sizeof(array) / sizeof(array[0]),但它只在主要方面起作用?例如:

代码语言:javascript
复制
int size(int arr1[]){
    return sizeof(arr1) / sizeof(arr1[0]);
}

int main() {
    int list[] = {1, 2, 3};

    int size1 = sizeof(list) / sizeof(list[0]); // ok
    int size2 = size(list_1); // no
    // size1 and size2 are not the same
}

为什么?

EN

Stack Overflow用户

发布于 2010-01-10 17:12:43

您可以使用boost::size,它基本上是这样定义的:

代码语言:javascript
复制
template <typename T, std::size_t N>
std::size_t size(T const (&)[N])
{
    return N;
}

请注意,如果要将大小用作常量表达式,则必须使用sizeof a / sizeof a[0]成语或等待下一个版本的C++标准。

票数 13
EN
查看全部 13 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2037736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档