sizeof有关问题

sizeof问题
void getsize(int num[])
{
  cout<<sizeof(num)<<endl;
}
int main()
{
  int a[] = {1,3,5,8,10,0};
  cout<<sizeof(a)<<endl;
  getsize(a);
}
为什么显示结果是:
24
4
求正解!!!

------解决方案--------------------
24是数组所占字节。
4是因为把数组名当作指针处理,一个指针占四个字节···
------解决方案--------------------
因为你传递的是 int ,占四个字节 ,可以这么做 sizeof(num)/4 , 通用的办法是这样 sizeof(num)/sizeof(int) ,这里的int 也可换成 double , float , char 之类
------解决方案--------------------
int a[] = {1,3,5,8,10,0};
cout<<sizeof(a)<<endl; 这个等于 24 很好解释了!
 getsize(a); 这个原因是函数传递将数组地址退化为一般的指针了!这也就是一般的传递 数组的函数都需要另外一个个数的信息的 getsize(int *p,int size)!
最后lz的id好熟一看就是一个好学的好青年呀!