形参和实参的存储位置的问题

程序代码:
void test2(int first, int secend, ...)
{
int *pre = &first;
int *sec = &secend;
printf("xing can:\npre= %d\nsec= %d\n\n", pre, sec);
int a=1, b=2;
printf("shi can:\n&a= %d\n&b= %d", &a, &b);
}
int main()
{
test2(1, 2);
return 0;
}
形参之间的地址之差为 8, 实参之间的地址为 4, 跪求为什么