gpt4 book ai didi

c++ - 确定 C 数组中元素的数量

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:16:42 27 4
gpt4 key购买 nike

调用 print_array 时,int array[] 参数(计数)的大小不是预期的。似乎 sizeof 返回整个数组的大小,即 5*sizeof(int) = 20。

namespace Util
{
void print_array(int array[])
{
size_t count = (sizeof array)/(sizeof array[0]);
cout << count;
// int count = sizeof(array)/sizeof(array[0]);
// for (int i = 0; i <= count; i++) cout << array[i];
}
}


int array_test[5]={2,1,5,4,3};
Util::print_array(array_test);

最佳答案

int array[] 在这里变成了 int* array,而 sizeof(array) 返回同样的东西 sizeof(int* )。您需要通过引用传递数组以避免这种情况。

template <size_t N>
void print_array(int (&array)[N]) {
std::cout << N;
}

int array[] = { 2, 1, 5, 4, 3 };
print_array(array);

关于c++ - 确定 C 数组中元素的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7756401/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com