Following is the array of function pointers 

```
(int) (*a[5]) (int);
 int f1(int){};
 ...

```

is the following way of definition correct?

```
a = f1;
a + 1 = f2;
a + 2 = f3; 
...

```

how do we call these functions?

```
*a(1) // is this correct???
*(a+1) (2)

```