From a question on the Practice C test from GeekInterview, why is the size of ptr1 2, while ptr2 and ptr3 are size of 4?

main() 
{ 
char near * near *ptr1; 
char near * far *ptr2; 
char near * huge *ptr3; 
printf("%d %d %d",sizeof(ptr1),sizeof(ptr2),sizeof(ptr3)); 
} 

Output: 2 4 4

c
Edit
Report