我试着理解如何使用数组作为函数的参数。
当我以这种方式提出参数时,我有一个错误: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;
}
答案 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]将创建一个以该成员开头的地址。