变量放外层函数运行不出来

为什么这样输出没结果
#include<stdio.h>
void d(int array[])
{
int i,n;
n=sizeof(array)/sizeof(array[0]);
for(i=n-1;i>=0;i--)
printf("%2d",array[i]);
}
int main()
{
int a[5]={8,5,3,3,2};
d(a);
return 0;
}

但是这样就能输出了
#include<stdio.h>
void d(int array[])
{
int i,n;
for(i=n-1;i>=0;i--)
printf("%2d",array[i]);
}
int main()
{
int a[5]={8,5,3,3,2};
n=sizeof(array)/sizeof(array[0]);
d(a);
return 0;
}

n=sizeof(array)/sizeof(array[0]);这个放里放外有什么区别吗?

你说反了吧,上面的是对的,下面的是错的,就是简单的变量作用域的问题