本帖最后由 执着的土豆 于 2014-4-28 22:36 编辑
字符串后面不是自动加\0得么?printf()在遇到\0不是应该自动停止得吗?为什么会输出乱码呢? 请高手详细解释一下。
- #include<stdio.h>
- #include<string.h>
- int main()
- {
- char a[10],b[10]="string";
- int i=0;
- for(;i<strlen(b);++i)
- a[i]=b[i];
- printf("%s\n",a);
- return 0;
- }
复制代码
谢谢各位的详细解答! 绕闷。试了一下,确实是没有把\0导入到第一个数组中,导致printf()函数输出的时候找不到\0,所以继续输出后面内存空间中的值,出现的乱码。
|