Array is a constant pointer. So, as a restriction of constant pointer it cannot change it's value like a general pointer.
i.e., we cannot change the value of a constant pointer like
a[3] = a[4];
This will give compile time error.
If we want to write this code without any compile time error it can be done as follows:
#include<stdio.h>
int main(void) {
static char* a[20] = {"Mona", "Vijay", "Kumar", "Ankur", "Suresh"};
int i;
char *temp = a[4];
a[4] = a[3];
a[3]=temp;
for(i = 0; i <= 4; i++)
printf("%s", a[i]);
return 0;
}