5

可能的重复:
C 中结构的 sizeof 数组?
sizeof 作为函数参数传递的数组

只是想写一个基本的sum()功能。

int sum(int arr[]) {
    int total = 0 , i = 0 , l = sizeof arr;

    for(i=0;i<l;i++) {
        total += arr[i];
    }

    return total;
}

l总是等于 4(我知道最终除以sizeof int

在 Windows 7 中使用默认编译器选项运行 Dev-C++。

4

1 回答 1

11

作为函数参数,数组衰减为指向元素类型的指针sizeof arrsizeof(elem*).

您必须将元素的数量作为额外的参数传递,无法从指向数组第一个元素的指针中确定这一点(在这种情况下实际传递的是什么)。

于 2012-04-22T15:10:39.777 回答