我有一段 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 对于字符数组和字符指针的行为不同?
任何人都可以澄清吗?