刚看到有同学提问计算字符串的长度,实际测试了一下,发现有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 是 怎么回事 ?








