int main()
{
char s1[10] = {'m','o','b','i','l'}; // 编译器自动添加'\0'
char s2[20] = {'a','s','n','i','\0','C','+','+'}; // 自动添加'\0'
printf("%d\n",strlen(s2)); // 4
printf("%d\n",strlen(s3)); // 不确定
printf("%d\n", strlen(s4)); // 不确定
return 0;
{
char s1[10] = {'m','o','b','i','l'}; // 编译器自动添加'\0'
char s2[20] = {'a','s','n','i','\0','C','+','+'}; // 自动添加'\0'
char s3[6] = {'i','s','o','n','+','+'}; // 不会添加'\0'
char s4[] = {'a','a','a'}; // 不会添加'\0'
printf("%d\n",strlen(s1)); // 5printf("%d\n",strlen(s2)); // 4
printf("%d\n",strlen(s3)); // 不确定
printf("%d\n", strlen(s4)); // 不确定
return 0;
}
s4的结果可能会因编译器不同而不同。我用linux下的g++以及windows下的cygwin提供的g++进行编译。个人认为linux下的g++结果比较合理。