In the context of function arguments, they are identical. All of the following are exactly the same:
f(int a[], int *b) f(int a[], int b[]) f(int *a, int *b) f(int *a, int b[])
You cannot distinguish between them without transmitting additional information.
source share