There is no difference except the syntax. For historical reasons, although int array[]it looks like it should pass an array, it actually passes a pointer (which means it is equal int *array).
If I were you, I would prefer int *arrayonly because he does what he looks like he is, that is, he is less likely to confuse you.