const char* str1 = "abcde";
char str2[] = "abcde";
char str3[8] = {'a'};
char str4[] = "123456789";
- str1 是一个指针,指向字符串"abcde"。所以sizeof(str1)不是字符串占的空间也不是字符数组占的空间,而是一个指针所占的空间。
- str2是一个字符型数组,对于一个数组,返回这个数组所占的总空间,所以sizeof(str2)取得的是字符串"abcde"的总空间。"abcde"中,共有a b c d e \0六个字符,所以str2数组的长度时6。
- str3已经定义成了长度为8的数组,所以sizeof(str3)为8;
- str4和str2类似,共十个字符,所以str4所占的空间是10.
strlen为字符串长度。