我应该知道这一点,但我不知道,我认为这可能是我基础知识的一个重大差距,所以我想我应该问专家。
鉴于:
char s1[] = { 'M', 'y', 'W', 'o', 'r', 'd' };
char s2[] = "MyWord";
cout << strlen(s1)<<endl;
cout << strlen(s2)<<endl;
cout << sizeof(s1)<<endl;
cout << sizeof(s2)<<endl;
为什么声明为s1
9strlen
而声明为s2
6?额外的 3 来自哪里,它缺少空终止字符?
而且我知道这sizeof(s2)
比 s2 大 1 字节,sizeof(s2)
因为 s2 会自动添加空字符?
请温柔一点,TIA!