<span style="font-size:24px;">void main() { int i = 0; char a[30] = "str1"; char b[30] = "str2\0str3"; strcpy(a,b); for(i = 0;i<30;i++) { printf("%c",a[i]); } printf("\n%s\n",a); memcpy(a,b,30); for(i = 0;i<30;i++) { printf("%c",a[i]); } printf("\n%s\n",a); system("pause"); }</span>
当我直接输出printf(“%s”,a)时,我发现,我的a 只有str2.当我是一个字符一个字符输出时,a结果却是str1 str2。这里的结果为什么不一样呢?原来是 %s输出时,它遇到'\0'就结束了的缘故