一段有关指针的代码,作为初指针的我,能都有好心人解疑呢?

#include
int VU(int b[],int *maxpos)
{
int i,max;
max=b[0];
*maxpos=0;
for(i=1;i {
if(b[i]>max)
{
max=b[i];
*maxpos=i;
}
}
return max;
}
int main()
{
int y,i,maxposition;
int a[5];
for(i=0;i<5;i++)
scanf("%d",&a[i]);

y=VU(a,&maxposition);
printf("%d\n",y);
printf("%d",maxposition+1);

return 0;

}

这段代码是运用指针找到最大值以及所在位置。
不明白的是最后一段输出, 子函数中的 *maxpos=i 不应该是让maxpos指向i,而不是maxpos等于i吗? 为什么主函数最后输出的时候直接就是maxposition, maxpisition里面存的不是i的地址吗?   应该是输出 *maxposition 啊,可是这样改为什么 会出错呢??  求大神带带我

VU函数第二个参数是int型指针,而你传的实参是整型的,就算加了取地址,也只表示一串数字。