我有一段C代码,我不明白该sizeof(...)
函数是如何工作的:
#include <stdio.h>
int main(){
const char firstname[] = "bobby";
const char* lastname = "eraserhead";
printf("%lu\n", sizeof(firstname) + sizeof(lastname));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,sizeof(firstname)是6,sizeof(lastname)是8.
但bobby
宽5个字符,宽eraserhead
11个.我期待16
.
为什么sizeof对于字符数组和指向字符的指针表现不同?
任何人都可以澄清吗?