为什么这个c程序输出4?

时间:2013-03-20 04:08:35

标签: c puzzle

为什么这个程序输出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函数中的地址main分配给arr[SIZE] size 1}}功能?

有人可以解释这个吗?

1 个答案:

答案 0 :(得分:1)

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