Hello, I am not able to understand whats happening behind "ptr-p", "*ptr-arr". Please explain
#include<stdio.h>
int main()
{
static int arr[]={0,1,2,3,4};
int *p[]={arr,arr+1,arr+2,arr+3,arr+4};
int **ptr=p;
ptr++;
printf("\n %d %d %d \n",ptr-p,*ptr-arr,**ptr);
*ptr++;
printf("\n %d %d %d \n",ptr-p,*ptr-arr,**ptr);
*++ptr;
printf("\n %d %d %d \n",ptr-p,*ptr-arr,**ptr);
++*ptr;
printf("\n %d %d %d \n",ptr-p,*ptr-arr,**ptr);
return 0;
}