このプログラムについてprintf下3つが理解できないので、どのような動きを
しているのか、解説をして頂きたいのですが、お願いします。

#include <stdio.h>

char *c[]={
     "ENTER",
     "NEW",
     "POINT",
     "FIRST"
};
char **cp[]={c+3,c+2,c+1,c};
char ***cpp=cp;
main()
{
     printf("%s",**++cpp);
     printf("%s ",*--*++cpp+3);
     printf("%s",*cpp[-2]+3);
     printf("%s\n",cpp[-1][-1]+1);
}
出力  POINTER STEW