У меня есть кусок кода 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 ведет себя по-разному для массива символов и указателя на символ?
Может ли кто-нибудь уточнить?