#include <stdio.h>

int main(void){
    int a=10;
    int *p=&a;
    char c='a';
    printf("Size of Int =%d\n",sizeof(a));
    printf("Size of Pointer =%d\n",sizeof(p));
    printf("Size of Char =%d\n",sizeof(c));
printf("1.%d\n",sizeof(NULL));   // Returns size of Pointer
printf("2.%d\n",sizeof*NULL); //Returns size of value pointer to by the Pointer. Same as Below.
printf("3.%d\n",sizeof*(NULL)); //Returns size of value that is pointer to by the Pointer. Null Pointer points to char.
printf("4.%d\n",sizeof((int*)1)); //Returns size of Pointer that is pointer to value 1
printf("5.%d\n",sizeof(*(int*)1)); //Returns size of value pointed by the pointer. i.e Size of Integer 1.

printf("6.%d\n", sizeof*(1?NULL:(int*)1));
printf("7.%d\n", sizeof*(0?NULL:(int*)1));
return 0;

}
