Considering the system to be 32 bit, means every instruction will be of 32 bit.
Now,
Char *p = 'good'; here p will be a pointer variable having the base address of string 'good'.
Char a[] =' good'; here also a is just a mnemonic having the base address of string 'good'.
Eg- lets assume base address is 'x'. So a[2] = (a+2) = (base address 'a' + 2*sizeof(char)).
Now, sizeof(p) = sizeof(a) = 4(32 bits)
Sizeof(*p) = 4, since *p will be pointing to string's first character and its length is 4.
Strlen(a) = strlen(p) = 32, since length of a or p will be equal to 32 bits.