Each element of the array occupies 4 bytes of space in memory.
Therefore, the calculation can be done as follows:
- Bytes between pointers = char_type_cast of (pointer2 - pointer1)
- Pointer-sized spaces = (bytes_between_pointers / 4)
- Integer-sized spaces = int_type_cast of (pointer2 - pointer1)
Working code:
#include<stdio.h>
int main()
{
    int arr[] = {10, 20, 30, 40, 50, 60};
    int *ptr1 = arr;
    int *ptr2 = arr + 5;
    
    
    /* 
      1 pointer = 4 bytes 
  
      Byte-sized spaces = char_type_cast of (ptr2 - ptr1)
        
      Pointer-sized spaces = byte_spaces / 4
        
      Integer-sized spaces = int_type_cast of (ptr2 - ptr1)
    */
  
    int byteSpaces = ((char*)ptr2 - (char*)ptr1);
    int pointerSpaces = (byteSpaces / 4);
    int integerSpaces = ((int*)ptr2 - (int*)ptr1);
    
    
    printf("Pointer 1 = %d\n", *ptr1);
    printf("Pointer 2 = %d\n", *ptr2);
    printf("\nByte sized spaces between two pointers = %d\n", byteSpaces);
    printf("\nPointer sized spaces between pointers = %d\n", pointerSpaces);
    printf("\nInteger sized spaces between pointers = %d\n", integerSpaces);
    return 0;
}
Output:
Pointer 1 = 10
Pointer 2 = 60
Byte sized spaces between two pointers = 20
Pointer sized spaces between pointers = 5
Integer sized spaces between pointers = 5