Complicated Declarations - Programming

Q1:

What will be the output of the program (in Turbo C under DOS)?
#include<stdio.h>

int main()
{
    char huge *near *far *ptr1;
    char near *far *huge *ptr2;
    char far *huge *near *ptr3;
    printf('%d, %d, %d\n', sizeof(ptr1), sizeof(ptr2), sizeof(ptr3));
    return 0;
}

A 4, 4, 8

B 2, 4, 4

C 4, 4, 2

D 2, 4, 8

ANS:A - 4, 4, 8

No answer description is available. Let's discuss.