strlen问题
											int main(void){
char b[10]="125\0679";
printf("%d %d",sizeof(b),strlen(b));
return 0;
}
结果为10 5
而
int main(void)
{
char b[10]="125679";
printf("%d %d",sizeof(b),strlen(b));
return 0;
}
结果为10 6
为什么前面strlen(b)为5

~[此贴子已经被作者于2018-3-21 02:49编辑过]

~
程序代码:
#include<stdio.h>
#include<string.h>
int main( void )
{
    char b[10]="125\0679";
    char c[10]={'1','2','5','\0','6','7','9'};
    
    char d[10]="125\000679";
    char e[10]="125\0""679";
    
    printf("%u  %u\n",sizeof(b),strlen(b));
    printf("%u  %u\n",sizeof(c),strlen(c));
    printf("%u  %u\n",sizeof(d),strlen(d));
    printf("%u  %u\n",sizeof(e),strlen(e));
    
    puts(b);
    puts(c);
    puts(d);
    puts(e);
    
    return 0;
}
[此贴子已经被作者于2018-3-21 09:31编辑过]
