C语言定义字符串数组问题,使用大括号定义的数组长度是预期长度的两倍
char x[]="abcdefg";
char y[]={'h','i','j','k','l','m','n'};
int xl = strlen(x),yl = strlen(y);
int i=0;
//printf("%s",x[i]);
puts(x);
puts(y);
C语言定义字符串数组问题,使用大括号定义的数组长度是预期长度的两倍
char x[]="abcdefg";
char y[]={'h','i','j','k','l','m','n'};
int xl = strlen(x),yl = strlen(y);
int i=0;
//printf("%s",x[i]);
puts(x);
puts(y);
你看到的只是一个假象, strlen是用来计算字符串的, 你初始化时没有知道字符串结束符,计算出来的结果自然是错误的。
char y[]={'h','i','j','k','l','m','n', 0};