0

为什么这个程序输出 4

#define SIZE 10
void size(int arr[SIZE])
{
   printf("size of array is:%d\n",sizeof(arr));
}

 int main()
{
      int arr[SIZE];
      size(arr);
      return 0;
}

在函数中调用size(arr)时会发生什么main,是否意味着将函数arr中的地址分配给函数中?mainarr[SIZE]size

有人可以解释吗?

4

1 回答 1

1

函数内部arr是一个指针。一个指针占用 4 个字节。sizeof返回作为参数传递的变量的大小(以字节为单位)。这就是为什么。

于 2013-03-20T04:16:39.077 回答