C++ 数组作为函数参数查找数组长度时出错
在第6行中,for循环条件中的状态无法计算数组的大小C++ 数组作为函数参数查找数组长度时出错,c++,c,C++,C,在第6行中,for循环条件中的状态无法计算数组的大小 1. int minimum(int arr[]){ 2. 3. int min,pos = 0; 4. min = arr[0]; 5. int i; 6. for(i = 0;i<(sizeof(arr)/sizeof(*arr));i++){ 7. if(arr[i]<min){ 8. min = arr[i]; 9. pos
1. int minimum(int arr[]){
2.
3. int min,pos = 0;
4. min = arr[0];
5. int i;
6. for(i = 0;i<(sizeof(arr)/sizeof(*arr));i++){
7. if(arr[i]<min){
8. min = arr[i];
9. pos = i;
10. }
11. }
12. return arr[pos];
13. }
编译时元素的数量未知,sizeofarr无法为正确的值赋值,它将为sizeofint*赋值,因为这是arr的类型
但是在
int minimum(int arr[])
<编译时的ARR的大小已知:简短答案:你不能。你使用C还是C++?如果是C++,那么STD::数组就是你要找的。常规数组是哑的,因为它们不知道自己的大小。在本网站发布时,您如何正确格式化代码的一些信息。在int minimumint arr[42]中,编译器仍然不知道元素的数量。@WeatherVane是的,我不够清楚,我编辑,谢谢您的建议
void f()
{
int arr[3];
printf("%d\n", sizeof(arr)/sizeof(*arr));
}