可能重复:
sizeof array of structs in C?
sizeof an array passed as function argumentÇ - 的sizeof int数组总是返回4
只是想编写一个基本的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
'arr'是一个指针,而不是一个数组。你在函数声明中使用的语法只是'int sum(int * arr)'的特别之处。您可能想阅读[comp.lang.c常见问题](http://c-faq.com/)的第6部分。 – pmg 2012-04-22 15:18:17
在64位机上进行编译时,您应该看到8,因为您正在查看指针的大小而不是数组的大小。 – 2012-04-22 15:21:09