Hello. I found this program in a book I read the explanation but I don't undersatnd a few things I hope that you guys can help me.

1.Code:#include <stdio.h> #define SIZE 100 int linearSearch(int [], int, int); int main() { int a[SIZE], x, searchkey, element; for(x=0; x<=SIZE-1; x++) { a[x] = 2*x; } printf("Enter the integer search key: "); scanf("%d", &searchkey); element = linearSearch(a, searchkey, SIZE); if (element != -1) { printf("Found value in element %d\n", element); } else printf("Value not found\n"); return 0; } int linearSearch(int array[], int key, int size) { int n; for(n=0; n <=SIZE-1; n++) { if (array[n] == key) return n; } return -1; }

Why is the function prototype different to the actual function declearation. I thought they were both meant to be the same. And is the program declearing and initilising the variable key, size and the array"array" in the function declearation.Code:int linearSearch(int [], int, int); int linearSearch(int array[], int key, int size)

2.

I totally don't understand this line of code what is it doing and whay is it doing it?Code:element = linearSearch(a, searchkey, SIZE);