数组函数参数上的sizeof将返回'double *'的大小,而不是'double []'的大小

时间:2018-09-24 07:42:14

标签: objective-c arrays

这是我的代码:

double findMax(double arr[]){
    double max = arr[0];
    for (int i = 0; i < sizeof(arr); i++) {
        if (arr[i] > max) {
            max = arr[i];
        }
    }
    return max;
}

我不知道如何在Objective-C中进行操作。谁能告诉我这是怎么回事?

1 个答案:

答案 0 :(得分:0)

如果您不太想使用C数组,并且还可以负担得起将数据映射到NSArray中的费用,那么您根本不必担心性能...我d建议在ObjC中执行此操作:

- (NSNumber *)maxIn:(NSArray<NSNumber *> *)array {
    return [array valueForKeyPath:@"@max.doubleValue"];
}