为什么两次算同一数组的大小,子函数算出来和主函数算出来不一样呢?

#include
#include

int test(unsigned short int a[]){
int num=sizeof(a);
return num;
}

int main()
{
int x;
unsigned short int b[]={1,2,3,4,5,6,7,8};
printf("%d\n",test(b));
printf("%d\n",sizeof(b));
return 0;
}图片说明


函数里面,数组退化为指针,用sizeof得不到数组长度。