tamanho da matriz de caracteres e tamanho do ponteiro de caractere

Eu tenho um pedaço de código C e não entendo como osizeof(...) funciona a função:

#include <stdio.h>

int main(){
   const char  firstname[] = "bobby";
   const char* lastname = "eraserhead";
   printf("%lu\n", sizeof(firstname) + sizeof(lastname));
   return 0;
}

No código acima sizeof (firstname) é 6 e sizeof (lastname) é 8.

Masbobby tem 5 caracteres de largura eeraserhead tem 11 de largura. eu espero16.

Por que o tamanho se comporta de maneira diferente para a matriz de caracteres e o ponteiro para o caractere?

Alguém pode esclarecer?

questionAnswers(5)

yourAnswerToTheQuestion