gpt4 book ai didi

c++ - 查找作为参数传递给函数的数组中的元素数。

转载 作者:太空狗 更新时间:2023-10-29 20:02:10 37 4
gpt4 key购买 nike

我试图创建一个函数来查找数组中的元素数量。为此,我使用了以下代码:

#include<iostream>
#include<stdlib>

int no_of_ele(A[]) //function to return size of array
{
return (sizeof(A)/sizeof(A[0]);
}

void main()
{
system("cls");
int arr[5] = {1,2,3,4,5};

cout<<"Number of elements in array are "<<no_of_ele(arr)<<endl;
system("pause");
}

在这种方法中,我得到如下输出:
enter image description here

然后,我这样做了:

cout<<"Size of array is "<<sizeof(arr)<<endl;
cout<<"Size of data type is "<<sizeof(arr[0]);

现在我得到了绝对正确的尺寸输出如下:

enter image description here

这是为什么?

最佳答案

现在有更好的方法,但最接近的是:

#include<iostream>

template<std::size_t N>
int no_of_ele(int (&A)[N]){
return sizeof(A)/sizeof(A[0]); // or just return N
}

int main(int argc, char* argv[]){

int arr[5] = {1,2,3,4,5};

std::cout<<"Number of elements in array are "<<no_of_ele(arr)<<std::endl;
return 0;
}

向 1998 致敬。问题是,Turbo C++ 是否支持模板?

更多信息请看这里:Is it possible to overload a function that can tell a fixed array from a pointer?

关于c++ - 查找作为参数传递给函数的数组中的元素数。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45529084/

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