In this program,Suppose array starts at 2000 ,then elements should be present at memory locations arr[1]=2004 and arr[5]=2020. and if it is so, then (j-i) should give 16, the difference between the memory locations of j and i.But it is giving the value ‘4’ for j-i.Why it is not giving the value 16?
main()
{
int arr[]={10,20,30,45,67,56,74};
int *i,*j;
i=&arr[1] ;
j=&arr[5] ;
printf ("%d %d",j-i,*j-*i);
}