У меня есть кусок кода C, и я не понимаю, как работает функция sizeof(...):
#include <stdio.h>
int main(){
const char firstname[] = "bobby";
const char* lastname = "eraserhead";
printf("%lu\n", sizeof(firstname) + sizeof(lastname));
return 0;
}
В приведенном выше коде sizeof (firstname) равен 6, а sizeof (lastname) - 8.
Но bobby имеет ширину 5 символов, а eraserhead - 11 ширины. Я ожидаю 16.
Почему sizeof ведет себя по-разному для массива символов и указателя на символ?
Может ли кто-нибудь уточнить?