关于C语言中printf输出字符串的问题!

#include <stdio.h>
void main ()
{
char a[]={'c','h','i'};
char b[]={'n','a'};
printf("%s%s\n",a,b);
}
结果是chinachi 为什么???

因为a和b没有字符串的结束符号'\0'
所以
"chi"是会输出的,但后面再输出什么,就不得而知了
"na"也会输出的,但它后面再输出什么,也不得而知了
你这种输出结果,只是很多中不可预期的输出里面的一种情况而已
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-04-29
printf函数输出数组型字符串时,从数组名标记的地址开始读取内容,直到内存中出现标记为‘\0’的内存单元才停止。
第2个回答  2008-04-29
//字符串要用'\0'才能结束啊
#include <stdio.h>
void main ()
{
char a[]={'c','h','i','\0'};
char b[]={'n','a','\0'};
printf("%s%s\n",a,b);
}
第3个回答  2008-04-29
一维数组不可以用字符串整体输出。
第4个回答  2008-04-29
不是这个结果那是什么结果??你想要什么结果?