刚看到有同学提问计算字符串的长度,实际测试了一下,发现有2个数据理解不了呢
程序代码:
#include<stdio.h> #include<string.h> int main() { char *str1 ="abcdefg"; char str2[] ="abcdefg"; char str3[7]={'a','b','c','d','e','f','g'}; int len1=sizeof str1/sizeof(char); int len2=sizeof str2/sizeof(char); int len3=sizeof str3/sizeof(char); printf("str1 of len=%d str2 of len2=%d str3 of len3=%d\n",len1,len2,len3); int _len1 =(int)strlen(str1); int _len2 =(int)strlen(str2); int _len3 =(int)strlen(str3); printf("str1 of len=%d str2 of len2=%d str3 of len3=%d\n",_len1,_len2,_len3); return 0; } /* 样例输出: str1 of len=4 str2 of len2=8 str3 of len3=7 str1 of len=7 str2 of len2=7 str3 of len3=15 */比较特殊的 4 =指针的长度 这没问题 3个长度为7的也没问题
那个 8 和 15 是 怎么回事 ?