【发布时间】:2012-05-03 09:18:15
【问题描述】:
可能重复:
sizeof array of structs in C?
sizeof an array passed as function argument
只是想写一个基本的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++。
【问题讨论】:
-
arr是一个指针,而不是一个数组。您在函数声明中使用的语法对于int sum(int *arr)来说简直是锦上添花。您可能想阅读comp.lang.c FAQ 的第 6 部分。 -
在 64 位机器上编译,您应该看到 8,因为您查看的是指针的大小而不是数组的大小。