如何使用数组作为函数参数

时间:2013-06-24 18:53:26

标签: objective-c c

我试着理解如何使用数组作为函数的参数。

当我以这种方式提出参数时,我有一个错误:minimum([5],10)。这显然是错误的,但我不知道如何做对。

我的例子是

#import <Foundation/Foundation.h>

int minimum(int values[],int numElements)
{
    int minValue,i;
    minValue = values[0];

    for(i=1;i < numElements; ++i)
       if(values[i] < minValue)
           minValue = values[i];

    return(minValue);
}

main()
{
    @autoreleasepool {
        int result;
        NSLog(@"For values 5 and numElements 10 results minValue  %i", minimum([5],10);
    }

    return 0;
}

2 个答案:

答案 0 :(得分:2)

您想检查array[10]中前5个值的最小值吗?在C中你可以这样做

#include <stdio.h>

int minimum(int values[], int numElements) /* or simply int *values */
{
    int minValue,i;

    minValue = values[0];
    for(i=1;i < numElements; ++i) /* do you mean i = 0? */
       if(values[i] < minValue)
           minValue = values[i];

    return(minValue);
}

main() /* int main(void) */
{
    int result[10] = {7, 4, 5, 8, 1, 3, 2, 6, 7, 6};

    printf("%d\n", minimum(result, 5));
    return 0;
}

答案 1 :(得分:0)

使用其名称和成员传递。

printf("at 0=%d at 5=%d", functionname(array), functionname(&array[5]));

您需要提供数组项的位置(地址)。如果仅使用名称,则与写入&amp; array [0](数组的第0个成员的地址)相同。否则,&amp; array [member]将创建一个以该成员开头的地址。