Marks is a float array and *float is a pointer to it.
compare the function call with the function:
display_marks(marks, SIZE);
void display_marks(float *p, int size)
You can't pass an array, so you pass a pointer to the first element plus an integer for the size of the array.
Ask more questions.