What happens when the following code runs

I don't understand why the output of &a[3]-&a[0] is not 12.

1045972
1045960
3

int a[5];
printf("%d\n", &a[3]);
printf("%d\n", &a[0]);
printf("%d\n", &a[3] - &a[0]);